我正在使用两个电子邮件模板并测试了性能:
- 100 封电子邮件,每封电子邮件包含 25 种产品,耗时 24 秒。
- 100 封电子邮件,每封电子邮件包含 12 种产品,耗时 16 秒。
所有图像(例如徽标、横幅、产品)都是调用图像托管在服务器上的 URL 的文本)。
我觉得时间的增加(从 16 秒到 24 秒仅 100 封电子邮件)是惊人的,因为我只为每个产品添加了几 KB。如果这种情况仅发送 100 封电子邮件,那么发送数千封电子邮件在完成发送的时间和性能方面的影响会很大。我的代码使用这个:
....
require_once "/.../ea-php70/root/usr/share/pear/Mail.php";
$params['sendmail_path'] = '/usr/lib/sendmail';
$mail_object =& Mail::factory('sendmail', $params);
$timeoutSet = set_time_limit(18000); // set script time out to 5 hours
...
for ($i = 1; $i <= 100; $i++) {
...
$_mail = $mail_object->send($recipients, $headers, $sendContent);
....
}
....
如何让我的 PEAR::Mail 实现更快地发送批量电子邮件?我怀疑我的服务器可能正在限制电子邮件,或者我需要更改一些 PEAR::Mail 设置,或者可能使用 SMTP 而不是 Sendmail。有任何想法吗?谢谢你。
更新 1:
我有一个 8 核 16 线程处理器。我所做的一件事是从 Web 浏览器的不同选项卡并行运行我的脚本,例如,发送 8000 封电子邮件不需要 4 分钟,而只需要 1 分钟,因为我分 4 批发送它们,每批 2000 封电子邮件,在 4 个并行且独立的进程中同时运行脚本。我正在尝试寻找其他方法来加快这项 CPU 密集型任务的速度,我想知道是否PEAR::Mail
有一些设置可以修改以更快地发送电子邮件。