我目前正在创建一个像这样工作的报价系统:
用户通过表单提交数据 - >数据发送到db - > pdf generated - >已发送电子邮件
我正在使用htmlmimemail5
库执行此操作,生成的电子邮件将发送到本地网络上单独服务器上的邮件交换。
可悲的是,这方面的负面影响是,脚本需要大约一分钟才能完全执行,因为脚本等待MX确认电子邮件已发送或已失败。
所以我希望可能有一个单独的PHP应用程序来处理所有的电子邮件处理,这意味着用户不必等待一分钟,而是可以跳转到下一页,他们可以查看信息等。
这个应用程序很乐意解决从用户进程请求构建的电子邮件队列,如果队列为空,可能会关闭吗?
我猜它需要某种电子邮件队列(比如打印队列)。
然而,因为我是一名初级PHP开发人员,并且所有其他开发人员都忙于照看孩子,我完全迷失了,甚至不知道从哪里开始,或者这是否是正确的策略?
更多信息:
所有内部和外部电子邮件都通过POSTINI路由,这也会增加延迟。
欢迎任何想法或建议! :)
答案 0 :(得分:15)
是的,实施起来非常简单。而不是立即发送,将电子邮件数据保存到数据库。有一个脚本(通过cron每分钟运行一次,或者更好的是daemonized PHP script)来获取排队的电子邮件并发送出去。
请确保数据库中有标记以指示进度,即“发送”列和“已发送”列,因此您的脚本知道不会尝试重复发送已经发送的内容。< / p>
答案 1 :(得分:2)
运行仅从localhost接收的本地MX,并将转发到“真正的”MX。