【问题标题】:How to send bulk emails through SMTP without establising a connection for every email?如何在不为每封电子邮件建立连接的情况下通过 SMTP 发送批量电子邮件?
【发布时间】:2013-09-13 02:56:52
【问题描述】:

我们有一个大型网站,可以向用户发送不同类型的电子邮件:时事通讯、忘记密码、用户创建的随机订阅等。门户非常大,我们每天需要发送数千封电子邮件。

现在的组织方式是所有电子邮件都在数据库中排队,然后有一个 cron 脚本每隔几分钟读取一次 DB 并发送这批 X 封电子邮件。该脚本本质上是一个 for 循环,它遍历这些 X 封电子邮件,并为每封电子邮件建立一个 SMTP 连接并发送电子邮件。但是,这会使服务器严重超载,基本上大部分时间服务器都忙于一一发送这些电子邮件。

我想知道是否有某种方法可以将这些排队的电子邮件分批发送到 SMTP 服务器。如果这涉及到一些专门的软件,那就有问题了,我们可以建立自己的 SMTP 服务器(我们更喜欢基于 Linux/Unix 的服务器)。例如,每天运行一个 cron,将该队列转换为 XML 文件并将该 XML 文件发送到 SMTP 服务器,然后 SMTP 服务器将解析它并发送所有这些电子邮件。

【问题讨论】:

  • 命名您使用的 MTA 服务器(Exim/Postfix/Sendmail)。恕我直言,您可以通过调整您的 MTA 配置并让您按收件人的域发送软组电子邮件来实现您想要的。

标签: email batch-file cron smtp bulk-email


【解决方案1】:

假设您的脚本在 Linux 或 Unix 服务器上运行:设置本地 Postfix,配置为 null client 并启用 connection cache。让您的脚本通过拾取方式将其邮件提交到本地 Postfix。

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    相关资源
    最近更新 更多