$mail = \Swift_Message::newInstance()
->setSubject($message->getSubject())
->setFrom($message->getEmail())
->setBody($message->getBody());
$this->get('mailer')->send($mail);
使用swiftmailer时不会发送邮件。然而,当我一步一步地进入调试器时,它似乎发送了电子邮件并返回sent = 1。但是我的邮箱(gmail)中没有收到任何内容。我使用我的Gmail帐户发送电子邮件,如下所示:
parameters:
mailer_transport: gmail
mailer_host: ~
mailer_user: username@gmail.com
mailer_password: my-password
delivery_address: username@gmail.com
swiftmailer:
transport: %mailer_transport%
host: %mailer_host%
username: %mailer_user%
password: %mailer_password%
spool: { type: memory }
我已经检查了apache错误日志,没有。我运行php app/console swiftmailer:spool:send
以防万一,但没有运气。
什么可以阻止发送电子邮件?
答案 0 :(得分:2)
您需要:
1)删除swiftmailer配置中的假脱机行,这一行:
spool:{type:memory}
2)触发要发送的假脱机队列:
php app / console swiftmailer:spool:send
但我认为你正在寻找选项1)
答案 1 :(得分:2)
<强> Parameter.yml 强>
mailer_transport: gmail
mailer_encryption: ssl
mailer_auth_mode: login
mailer_host: smtp.gmail.com
mailer_user: 'xxxxxxxxxxxx'
<强> config.yml 强>
swiftmailer:
transport: gmail
host: smtp.gmail.com
username: 'Yourmail-id@gmail.com'
password: 'Password'
答案 2 :(得分:1)
- &gt; setTo部分丢失了!这解决了它。
$mail = \Swift_Message::newInstance()
->setSubject($message->getSubject())
->setFrom($message->getEmail())
->setTo("me@gmail.com")
->setBody($message->getBody());
答案 3 :(得分:-1)
首先,当您设置spool: { type: memory }
时,这意味着您确实希望通过运行spool命令手动发送电子邮件:php app/console swiftmailer:spool:send
。因此删除该假脱机行将有所帮助。
其次,您需要正确配置邮件主机。出于开发目的,我强烈建议您使用SendGrid等服务,并按照此Symfony2 Mailing Setup Tutorial
中的详细说明对其进行配置本教程还包含有关如何在Symfony2中正确设置邮件服务以及如何构建邮件模板的详细信息。
第三,如果你想坚持使用Gmail,那么正确的数据是:
mailer_transport: smtp
mailer_host: smtp.gmail.com
mailer_user: your_gmail_address@gmail.com
mailer_password: 'your_gmail_password'
mailer_port: 587