Symfony在生产环境中发送电子邮件

时间:2014-06-30 07:45:26

标签: symfony sendmail production-environment swiftmailer

我正在尝试在prod环境中发送电子邮件,但它不起作用......我收到此日志:

  

[2014-06-30 09:37:54] request.CRITICAL:未捕获PHP异常   Swift_TransportException:"预期的响应代码250但得到了代码   " 530",带消息" 530 5.7.0必须先发出STARTTLS命令。   o2sm28357522wia.16 - gsmtp""在   C:\ XAMPP \ htdocs中\ UniDocs \供应商\ swiftmailer \ swiftmailer \ LIB \类\雨燕\传输\ AbstractSmtpTransport.php   第386行{"例外":" [对象](Swift_TransportException:预期   响应代码250,但得到代码\" 530 \",带消息\" 530 5.7.0必须   首先发出STARTTLS命令。 o2sm28357522wia.16 - gsmtp \ r \ n \"在   C:\ XAMPP \ htdocs中\ UniDocs \厂商\ swiftmailer \ swiftmailer \ lib中\类\夫特\运输\ AbstractSmtpTransport.php:386)"}   []

然而,在开发中它正在工作......

我的配置如下:

config_dev.yml:

swiftmailer:     运输:smtp     加密:ssl     auth_mode:登录     主持人:smtp.gmail.com     用户名:myemail@gmail.com     密码:mypass

config.yml:

swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    username:  %mailer_user%
    password:  %mailer_password%

parameters.yml:

mailer_transport: smtp
mailer_host: smtp.gmail.com
mailer_user: myemail@gmail.com
mailer_password: mypass

我还有另一个问题......,在web / app.php中我是否必须写$kernel = new AppKernel('prod', false);$kernel = new AppKernel('prod', true); ??

1 个答案:

答案 0 :(得分:8)

我已使用我的Gmail帐户在Symfony2中发送电子邮件,并指定了一些您未指定的参数。以下是我的配置:

<强> config.yml:

swiftmailer:
    transport: %mailer_transport%
    encryption: %mailer_encryption%
    auth_mode:  %mailer_auth_mode%
    host:      %mailer_host%
    username:  %mailer_username%
    password:  %mailer_password%
    spool:     { type: memory }

<强> parameters.yml:

mailer_transport:  smtp
mailer_encryption: ssl
mailer_auth_mode:  login
mailer_host:       smtp.gmail.com
mailer_username: myusername@gmail.com
mailer_password: mypassword

与您的第二个问题相关,原始行是

$kernel = new AppKernel('prod', false);

如果将其更改为true,则可以在生产模式下显示错误消息,因为AppKernel构造的第二个参数指示调试模式。