Laravel Mail Facade使用本地SMTP发送电子邮件非常慢

时间:2017-05-30 14:26:58

标签: php laravel email smtp

我尝试使用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 );

        });
}

1 个答案:

答案 0 :(得分:1)

即使使用性能最佳的邮件服务器,同步发送电子邮件也会导致延迟。最重要的是,你要循环运行它。

首先要排队邮件。默认情况下sync队列不执行任何操作,它只是正常运行作业直到完成。您需要设置一个专用队列,如数据库或redis。然后将邮件推送到队列中。仅此一点就会立即消除所有的缓慢,这与你说排队使情况变得更糟。

其次,如果您的邮件具有相同的布局和内容,请考虑使用密件抄送向所有用户发送一封邮件。