SwiftmailerBundle配置信息("swiftmailer"根键)

3.4 版本
维护中的版本

配置 

transport 

值类型: string 默认值: smtp

用于发送邮件的确切传输方式。有效值可以是:


username 

值类型: string

当使用 smtp 作为transport(传输方式)时的用户名。


password 

值类型: string

当使用 smtp 作为transport(传输方式)时的密码。


host 

值类型: string 默认值: localhost

当使用 smtp 作为transport(传输方式)时的待连接主机名。


port 

值类型: string 默认值: 25 或 465 (取决于 encryption)

当使用 smtp 作为transport(传输方式)时的端口号。如果加密使用了 ssl 时默认是465,否则是25。


encryption 

值类型: string

当使用 smtp 作为transport(传输方式)时的加密方式。有效值是 tls, ssl, 或 null (不加密)。


auth_mode 

值类型: string

当使用 smtp 作为transport(传输方式)时的验证方式。有效值是 plain, login, cram-md5, 或 null


spool 

邮件滚动请参考 如何滚动发送邮件

type 

值类型: string 默认值: file

用于存储滚动信息的方式。有效值是 memoryfile。一个自定义的spool是可能的,创建一个名为 swiftmailer.spool.myspool的服务,并且本选项的值为 myspool即可。

path 

值类型: string 默认值: %kernel.cache_dir%/swiftmailer/spool

当使用 file spool时,本选项的就是滚动信息的存储路径。


sender_address 

值类型: string

如果设置了本选项,所有信息将通过把此地址作为“return path(返回路径)"之地址来进行发送,也就是应答信息(bounced messages)应该发往的地方。这在Swift Mailer内部是通过 Swift_Plugins_ImpersonatePlugin 类完成的。


antiflood 

threshold 

值类型: integer 默认值: 99

Swift_Plugins_AntiFloodPlugin 一起使用。这是在transport重新启动之前所要发送的邮件数量。

sleep 

值类型: integer 默认值: 0

Swift_Plugins_AntiFloodPlugin 一起使用。这是在transport重新启动过程中需要休眠的秒数。


delivery_address 

值类型: string

如果设置了本选项,所有邮件信息将被发往此地址,而不是它们所应该发往的真实收件人那里。这在开发过程中是有用的。例如,在 config_dev.yml 文件中对此选项进行设置,你可以确保开发过程中的所有邮件发向一个单一账号。

它使用了 Swift_Plugins_RedirectingPlugin。原始收件人在 X-Swift-To, X-Swift-Cc 以及 X-Swift-Bcc 头中可用。


delivery_whitelist 

值类型: array

delivery_address 一起使用,如果被设置,与这些pattern中的任何一个相匹配的邮件将像往常一样被发送,如同被发送到 delivery_address。可多细节请参考 如何在开发过程中处理邮件 一文。


disable_delivery 

值类型: boolean 默认值: false

如果设为true, transport 将自动被设置成 null ,不再邮件被真正发送。


logging 

值类型: boolean 默认值: %kernel.debug%

如果设为true,Symfony将为Swift Mailer而激活(工具条中的)data collector,相关信息可以在profiler分析器中进行查看。

完整的默认配置 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
swiftmailer:
transport:            smtp
username:             ~
password:             ~
host:                 localhost
port:                 false
encryption:           ~
auth_mode:            ~
spool:
type:                 file
path:                 "%kernel.cache_dir%/swiftmailer/spool"
sender_address:       ~
antiflood:
threshold:            99
sleep:                0
delivery_address:     ~
disable_delivery:     ~
logging:              "%kernel.debug%"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
        http://symfony.com/schema/dic/swiftmailer http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd">
 
    <swiftmailer:config
            transport="smtp"
            username=""
            password=""
            host="localhost"
            port="false"
            encryption=""
            auth_mode=""
            sender_address=""
            delivery_address=""
            disable_delivery=""
            logging="%kernel.debug%"
    >
        <swiftmailer:spool
                path="%kernel.cache_dir%/swiftmailer/spool"
                type="file" />
 
        <swiftmailer:antiflood
                sleep="0"
                threshold="99" />
    </swiftmailer:config>
</container>

使用多个mailer 

你可以配置多个mailer,在mailers键下将其结为群组即可(默认的mailer将通过default_mailer选项来识别):

1
2
3
4
5
6
7
swiftmailer:
default_mailer: second_mailer
mailers:
first_mailer:
# ...
second_mailer:
# ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:swiftmailer="http://symfony.com/schema/dic/swiftmailer"
           xsi:schemaLocation="http://symfony.com/schema/dic/services
        http://symfony.com/schema/dic/services/services-1.0.xsd
        http://symfony.com/schema/dic/swiftmailer
        http://symfony.com/schema/dic/swiftmailer/swiftmailer-1.0.xsd"
>
    <swiftmailer:config default-mailer="second_mailer">
        <swiftmailer:mailer name="first_mailer"/>
        <swiftmailer:mailer name="second_mailer"/>
    </swiftmailer:config>
</container>
1
2
3
4
5
6
7
8
9
10
11
$container->loadFromExtension('swiftmailer', array(
'default_mailer' => 'second_mailer',
'mailers' => array(
'first_mailer' => array(
// ...
),
'second_mailer' => array(
// ...
),
),
));

每个mailer都被注册成服务:

1
2
3
4
5
6
7
8
9
10
11
// ...
 
// returns the first mailer / 返回第一个mailer
$container->get('swiftmailer.mailer.first_mailer');
 
// also returns the second mailer since it is the default mailer
// 也返回第二个mailer,因为它是默认的
$container->get('swiftmailer.mailer');
 
// returns the second mailer / 返回第二个mailer
$container->get('swiftmailer.mailer.second_mailer');

当配置多个mailer时,选项必须被放置在合适的配置键之下,而不是直接放在swiftmailer根键下。

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)