【发布时间】:2016-03-20 13:32:34
【问题描述】:
我在一个 symfony 项目(版本 2.3.35)中工作,我无法在生产环境中发送电子邮件。邮件在生产环境之外的其他环境中都可以完美发送。
例如,当我通过命令行发送电子邮件时: 这项工作:
php app/console swiftmailer:email:send --env=dev
但是,这不起作用:
php app/console swiftmailer:email:send --env=prod
两者的结果是一样的:
From: from_email@gmail.com
To: my_email@gmail.com
Subject: lorem ipsum
Body: lorem ipsum
Sent 1 emails
但是使用 --env=prod 选项我没有收到任何电子邮件。
我已经尝试过数百次设置 parameters.yml 和 config.yml ,就像在 this post 中一样,但它仍然无法正常工作。
app/config/config.yml
swiftmailer:
transport: %mailer_transport%
host: %mailer_host%
username: %mailer_username%
password: %mailer_password%
spool: { type: memory }
app/config/parameters.yml
mailer_transport: gmail
mailer_host: smtp.gmail.com
mailer_username: my_email@gmail.com
mailer_password: apswd
另外:
- prod.log 和 dev.log 没有任何关于 swiftmailer 的错误。
有什么建议吗?
提前致谢。
编辑: 在存储项目的服务器(Ubuntu Server 12.04)上,我可以使用命令行或使用脚本 php(带有 mail() 函数)发送电子邮件。两者都能完美运行。
解决方案
我终于通过使用解决了这个问题:
php app/console cache:clear --env=prod
我不知道为什么,但是这个命令已经解决了这个问题。执行此命令后,电子邮件已从生产环境完美发送。
谢谢大家。
【问题讨论】:
-
您与房东核实了吗?他们可能会阻止您的电子邮件。
-
在主机中,邮件仅在开发或测试环境中发送。我只在生产环境中遇到问题
-
+1 这个问题,我最近也遇到了类似的奇怪问题,很想听听答案。
标签: php symfony email production-environment swiftmailer