【问题标题】:Symfony2 SwiftMailer - How to send emails without waiting for the server responseSymfony2 SwiftMailer - 如何在不等待服务器响应的情况下发送电子邮件
【发布时间】:2013-12-29 03:23:04
【问题描述】:

我正在使用 swiftmailer 发送一封包含大约 300 密件抄送的电子邮件。 问题是我在客户端执行此操作时会出现 30 秒的超时。

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

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

我检查了手册中的How to Spool Emails,但我不认为我需要这样做。

知道我该怎么做吗?提前谢谢你。

【问题讨论】:

标签: php performance email symfony swiftmailer


【解决方案1】:

来自 Symfony 文档:

# app/config/config.yml
swiftmailer:
    # ...
    spool: { type: memory }

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

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

【讨论】:

  • 我知道,这个话题已经很老了,但我面临着与@Miloš 相同的问题,我尝试按照您的建议使用内存假脱机来处理它。不知何故,电子邮件仍然需要很长时间才能假脱机,并且对于大量电子邮件,服务器仍然超时。有没有其他的处理方式?后台进程?或者至少可能是一个显示发送/假脱机进程状态的 ajax-message/flash-message?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多