0

我有一台服务器正在为客户发送电子邮件,每分钟 5000 封 :) 我只使用 php 和一个邮件服务器设置了 10 个 vps。在每个 vps 上,有 10 个 cronjobs,每个 cronjobs 发送 50 封邮件。他们从另一台服务器的 mysql 队列中获取电子邮件,并将电子邮件发送到它自己的 vps 中。

到目前为止一切都很好。当发送的电子邮件有一个小的 html 代码(例如最多 400-500 条代码)时,它可以完美运行。一个 cronjob 在大约 30 秒内发送 50 封这样的电子邮件。Cronjobs 每分钟运行一次,所以为了不造成过载,如果 cronjob 没有在一分钟内完成,它会杀死自己并将未发送回的电子邮件放入队列中。所以下一个 cronjob 会在另一个 cronjob 离开的地方继续。

我的问题是带有 1000 或 2000 行 html 代码的大电子邮件需要更长的时间才能发送。例如,一封 4-500 行的电子邮件在 0.5-0.8 秒内发送,因此 cronjob 在不到一分钟的时间内完成发送 50 封电子邮件,但 1000 多行电子邮件在大约 2 秒内发送,因此 cronjob 永远无法完成一次发送 50 封电子邮件分钟。

问题是服务器每分钟发送 5000 封电子邮件的 normail 活动,但每分钟发送不超过 2000-3000 封电子邮件的大型 html 电子邮件活动。这意味着速度减半。

有人知道使大型 html 电子邮件发送速度更快的解决方案吗?

我正在使用 php 5.13、phpmailer 和带有 ssd 硬件的 8 核 3.4 Ghz 服务器。

任何帮助或想法将不胜感激!谢谢!

4

1 回答 1

1

有人知道使大型 html 电子邮件发送速度更快的解决方案吗?

正确的问题是“发送电子邮件需要这么多时间?” . 如果你回答这个问题,回答“如何更快地发送电子邮件?”会更容易。.

所以,安装xdebugor xhprof,分析你的代码,看看什么需要这么多时间,优化,赢。

于 2013-06-01T09:38:10.567 回答