如何使用Gmail来发送邮件
在开发过程中,若不使用常规的SMTP服务器来发邮件的话,你可能会发现使用Gmail服务器是更为简单的实践方案。swiftmailerBundle令Gmail邮件发送相当容易。
在开发版配置文件中,修改transport
选项,将其设为gmail
,然后将username
和password
设置为Google账号凭据:
|
# app/config/config_dev.yml
swiftmailer:
transport: gmail
username: your_gmail_username
password: your_gmail_password |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<!-- app/config/config_dev.xml -->
<?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="gmail"
username="your_gmail_username"
password="your_gmail_password"
/>
</container> |
|
// app/config/config_dev.php
$container->loadFromExtension('swiftmailer', array(
'transport' => 'gmail',
'username' => 'your_gmail_username',
'password' => 'your_gmail_password',
)); |
把这些选项配置到parameters.yml
中则更为简便:
|
# app/config/parameters.yml
parameters:
# ...
mailer_user: your_gmail_username
mailer_password: your_gmail_password |
|
# app/config/config_dev.yml
swiftmailer:
transport: gmail
username: "%mailer_user%"
password: "%mailer_password%" |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<!-- app/config/config_dev.xml -->
<?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="gmail"
username="%mailer_user%"
password="%mailer_password%"
/>
</container> |
|
// app/config/config_dev.php
$container->loadFromExtension('swiftmailer', array(
'transport' => 'gmail',
'username' => '%mailer_user%',
'password' => '%mailer_password%',
)); |
重新定义默认配置参数 ¶
gmail
transport是一个简化的快捷方式,它使用了smtp
传输方式,并且设置了如下选项:
Option |
Value |
encryption |
ssl |
auth_mode |
login |
host |
smtp.gmail.com |
如果你的程序使用了tls
加密或oauth
验证方式,你必须通过encryption
和auth_mode
参数来覆写默认选项。
如果你的Gmail账户使用了“二步验证”(2-Step-Verification),你必须生成一个App密码,然后使用它作为mailer_password
参数的值。你必须确保允许不安全程序访问你的Gmail账号。
参考Swiftmailer configuration reference以了解细节。