我有一个使用Symfony 2.4创建的Web应用程序,我使用SwiftMailer发送电子邮件。
我使用邮件传输sendmail。
当用户发送电子邮件时,我不会收到此电子邮件。但是,如果我在命令行中执行:
$php app/console swiftmailer:spool:send --env=prod
我收到所有电子邮件。
¿我该怎么办?
非常感谢!
---- ----编辑
我已删除配置文件中对spool的所有引用,但问题仍然存在。
----编辑2 ----
Config.yml
mailer_transport: sendmail
mailer_host: ****
mailer_user: *****
mailer_password: ****
答案 0 :(得分:2)
从你的配置中删除假脱机行(参数。我相信吗?我从未使用过symfony所以我正在解释文档)。
从配置中删除任何提及的假脱机后,它应该停止假脱机并立即发送。
话虽如此,假脱机的原因是它在执行请求结束时发送电子邮件,这样你就不会有性能损失(减慢请求),可能是通过关机功能。 。这个函数不能执行的唯一原因,因此你的电子邮件没有发送,如果脚本提前结束(即死/退出或未捕获的异常),那么你可能想看看解决根本原因而不是修补它
编辑:手动刷新(在命令行脚本示例中为此提供资金,我已将其编辑为我认为应该让它适合您的工作....)
// now manually flush the queue
$container = $this->getContainer();
$mailer = $this->get('mailer');
$spool = $mailer->getTransport()->getSpool();
$transport = $container->get('swiftmailer.transport.real');
$spool->flushQueue($transport);
http://symfony.com/doc/current/cookbook/console/sending_emails.html