在 php 中使用 PEAR::Mail 发送批量邮件?

1 php email bulk send

我是 PEAR::Mail 的新手,我正在寻找可以教我如何发送批量邮件(10K+ 电子邮件)的教程。“在 php 中使用 mail() 效率不高,因为它打开和关闭 smtp 套接字”,这是我从互联网资源中读到的内容(现在找不到链接,grrr)。

因此,我正在考虑手动执行此操作并使用可用于 PHP 的邮件库,并且我发现了这个 PEAR:Mail。在PEAR网站本身上,有“发送多个收件人”简单教程,所有收件人将被插入到一个数组中,然后发送。这是发送 10k++ 邮件的方式吗?我记得有一个叫做“邮件队列”的东西,但真的不知道如何在 PEAR:Mail 中使用它,有人可以帮助我吗?

我不认为 Facebook 会使用 for 循环来发送批量电子邮件(通知),对吗?(嗯,这就是我的想法)

小智 5

批量电子邮件不仅仅是您实现发件人所用的语言。就 rich 建议的库而言,您将考虑使用 SMTP 中继来排队和限制您的邮件。

正如我在为公司编写群发邮件程序时发现的那样,任何群发邮件程序面临的主要问题是邮件发送到以太坊的速度以及它如何管理已列入灰名单或其他内容的邮件的重试。

因此,第一,您需要一个可靠的 SMTP 服务器来运行邮件发送作业。您还需要某种方法来限制服务并对其进行监控。在运行 IIS 并连接到相当大的管道的标准 Windows 服务器上,我们每 15 分钟可以清除 5k 封邮件。如果您希望在 48 小时内实现所有这些,那么您就会被催促。

事实上,推送数据的速度存在硬性限制,而且 ISP 等还施加了进一步的人为限制。如果您不希望作业以蜗牛般的速度运行,那么限制、正确的 DNS 记录等就变得至关重要。我可以将 10k 封邮件推送出去(邮件大小约为 50kb,这样可以让您对吞吐量有更进一步的了解)的最短时间是半小时,我们拥有顶级的套件和与大型网络的连接。分配管道支持我们。

在我们公司成立之初,他们通常通过我们当地的宽带将东西邮寄出去,大约需要 12-14 个小时才能发送 7000 封邮件。所以你必须明白物理资源非常重要。

此外,您将不可避免地最终会收到每 10k 中至少大约 50 封邮件,而这些邮件无法首次送达。其中大约有 10 个永远不会去任何地方。重试队列中这些邮件的存在可能会对后续批次邮件的传送产生一定的拖累影响,虽然影响很小但很重要。

此外,您不能只是将 10k 邮件文件放入任何服务器并期望它对此完全满意。我们通过实验发现,每三分钟发送 1000 封邮件可以为我们提供最佳的队列发送比率。您的里程数将根据您的硬件而有所不同。

坦率地说,您在这个阶段最不用担心的是软件库的选择。