我尝试使用Laravel的邮件外观发送电子邮件。 5.3。我正在使用我公司的本地SMTP服务器。它的速度非常慢,超过了每秒一封的电子邮件。无论如何加快这个速度?我已经搜索了一种方法来建立连接,保持打开状态并重复使用,但没有骰子。我已经触发了这个异步,所以排队不是一个很大的帮助,它只会进一步降低速度。
foreach($customers as $customer) {
//build $params, $sendTo, $subject
Mail::send(array('myemailview',null), $params,
function($message) use ($sendTo, $subject)
{
$message
->to([$sendTo])
->subject( $subject );
});
}
答案 0 :(得分:1)
即使使用性能最佳的邮件服务器,同步发送电子邮件也会导致延迟。最重要的是,你要循环运行它。
首先要排队邮件。默认情况下sync
队列不执行任何操作,它只是正常运行作业直到完成。您需要设置一个专用队列,如数据库或redis。然后将邮件推送到队列中。仅此一点就会立即消除所有的缓慢,这与你说排队使情况变得更糟。
其次,如果您的邮件具有相同的布局和内容,请考虑使用密件抄送向所有用户发送一封邮件。