Symfony2 SwiftMailer - 如何在不等待服务器响应的情况下发送电子邮件

Mil*_*loš 4 php email performance swiftmailer symfony

我正在使用 swiftmailer 发送一封大约 300 BCC 的电子邮件。问题是,这样做时,我在客户端收到了 30 秒的超时。

在服务器端检查时,邮件发送正确,但发送所有这些电子邮件需要一些时间,因为邮件服务器处理大量电子邮件。

关于如何告诉 swiftmailer 不要等待服务器响应并呈现视图的任何想法。

我从 coockbook检查了如何假脱机电子邮件,但我不认为我需要这样做。

知道我怎么能这样做吗?先感谢您。

use*_*136 5

来自 Symfony 文档:

# app/config/config.yml
swiftmailer:
    # ...
    spool: { type: memory }
Run Code Online (Sandbox Code Playgroud)

当您使用 SwiftmailerBundle 从 Symfony2 应用程序发送电子邮件时,它会默认立即发送电子邮件。但是,您可能希望避免 Swift Mailer 和电子邮件传输之间的通信性能下降,这可能导致用户在发送电子邮件时等待下一页加载。这可以通过选择“假脱机”电子邮件而不是直接发送来避免。这意味着 Swift Mailer 不会尝试发送电子邮件,而是将消息保存到某个地方,例如文件。然后另一个进程可以从后台读取并负责在后台发送电子邮件。目前,Swift Mailer 仅支持后台处理到文件或内存。

http://symfony.com/doc/current/cookbook/email/spool.html