我们有一个大型网站,可以向用户发送不同类型的电子邮件:时事通讯、忘记密码、用户创建的随机订阅等。门户非常大,我们每天需要发送数千封电子邮件。
它现在的组织方式是所有电子邮件都在数据库中排队,然后有一个 cron 脚本每隔几分钟读取一次 DB 并发送一批 X 电子邮件。该脚本本质上是一个 for 循环,它遍历这些 X 封电子邮件,并为每封电子邮件建立一个 SMTP 连接并发送电子邮件。然而,这会使服务器严重超载,基本上大部分时间服务器都忙于一一发送这些电子邮件。
我想知道是否有某种方法可以将这些排队的电子邮件分批发送到 SMTP 服务器。如果这涉及到一些专门的软件,那就有问题了,我们可以建立自己的 SMTP 服务器(我们更喜欢基于 Linux/Unix 的服务器)。例如,可以每天运行一个 cron,将该队列转换为 XML 文件并将该 XML 文件发送到 SMTP 服务器,然后 SMTP 服务器将解析它并发送所有这些电子邮件。