用PHP创建电子邮件队列?

问题描述 投票:6回答:2

我目前正在创建一个类似这样的报价系统:

用户通过表单提交数据->发送到数据库的数据->生成pdf->发送电子邮件

我正在使用htmlmimemail5库来执行此操作,并且所生成的电子邮件将发送到本地网络上单独服务器上的邮件交换机。

可悲的是,由于脚本等待MX确认电子邮件已发送或失败,因此php脚本需要大约一分钟才能完全执行。

因此,我希望有一个单独的PHP应用程序来处理所有电子邮件处理,这意味着用户不必等待一分钟,而可以跳转到下一个可以查看信息的页面,等等。

此应用程序将很高兴在根据用户进程请求建立的电子邮件队列上工作,如果该队列为空,则可能会关闭?

我猜测这将需要某种电子邮件队列(例如打印队列)。

但是,由于我是一名初级PHP开发人员,而所有其他开发人员都忙于打理,我完全迷失了方向,甚至不知道从哪里开始,或者这是否是正确的策略?

更多信息:

  • 服务器是BSD监狱
  • Apache 2.2 / PHP5

所有内部和外部电子邮件都通过POSTINI进行路由,这也会增加延迟。

欢迎任何想法或建议! :)

php email mime
2个回答
15
投票

是的,这很容易实现。而不是立即发送,而是将电子邮件数据保存到数据库。有一个脚本(通过cron每分钟运行一次,或者最好通过daemonized PHP script运行)来接收排队的电子邮件并将其发送出去。

[请确保在数据库中具有用于指示进度的标志,即,一列用于“发送”,一列用于“已发送”,因此您的脚本知道不要尝试重复发送已在发送过程中的一个。


2
投票

运行仅从本地主机提取的本地MX,并将中继到“真实” MX。

© www.soinside.com 2019 - 2024. All rights reserved.