Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中创建电子邮件队列?_Php_Email_Mime - Fatal编程技术网

在PHP中创建电子邮件队列?

在PHP中创建电子邮件队列?,php,email,mime,Php,Email,Mime,我目前正在创建一个报价系统,其工作原理如下: 用户通过表单-->将数据发送到数据库-->pdf生成-->发送电子邮件来提交数据 我正在使用htmlimemail5库来执行此操作,生成的电子邮件将发送到本地网络上单独服务器上的邮件交换 遗憾的是,这一点的负面影响是,php脚本需要大约一分钟的时间才能完全执行,因为脚本等待MX确认电子邮件已发送或已失败 因此,我希望能够有一个单独的PHP应用程序来处理所有电子邮件处理,这意味着用户不必等待一分钟,而是可以跳转到下一页,在那里他们可以查看信息等 这个应

我目前正在创建一个报价系统,其工作原理如下:

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

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

遗憾的是,这一点的负面影响是,php脚本需要大约一分钟的时间才能完全执行,因为脚本等待MX确认电子邮件已发送或已失败

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

这个应用程序会很高兴地在一个由用户进程请求建立的电子邮件队列上工作,如果队列为空,可能会关闭吗

我猜它需要某种电子邮件队列(比如打印队列)

然而,由于我是一名初级PHP开发人员,而所有其他开发人员都太忙而无法照看孩子,我完全不知所措,甚至不知道从哪里开始,或者这是否是正确的策略

更多信息:

  • 服务器是BSD监狱
  • Apache2.2/PHP5
所有内部和外部电子邮件都通过POSTINI发送,这也增加了延迟


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

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


确保数据库中有标志来指示进度,即一列表示“发送”,另一列表示“发送”,这样脚本就知道不要重复发送已经在发送过程中的文件。

运行本地MX,该MX将只从本地主机接收,并将中继到“真实”主机MX.

用PHP构建和管理队列是可能的,但有重新发明轮子的味道……也许还有“软/硬反弹”、“延迟”、“域无MX”等标志。