Laravel向多个用户发送电子邮件需要太长时间

时间:2018-09-20 08:17:42

标签: php laravel mailgun

我正在寻找一种解决方案,该如何优化我的代码以向我的应用程序中的所有用户发送电子邮件?

    $emails = [
        'myoneemail@esomething.com',
        'myoneemail@esomething.com',
        'myoneemail@esomething.com',
        ...
    ];

    $data = [
        'subject' => 'Items List',
        'mailFrom' => 'no-replay@example.com',
        'items' => $items
    ];

    foreach ($emails as $email) {

        Mail::to($email)->queue(new Mailable($data));

    }
    return back();

是否有任何解决方案可以对其进行优化?在实时应用中,我有100多个用户。

1 个答案:

答案 0 :(得分:3)

如果我没记错的话,可以使用Mail::bcc($emails)->queue(new Mailable($data));。 这样一来,您只需发送1封邮件,所有电子邮件均保存在密件抄送中。

但是,如果每封邮件都是不同的/是针对用户定制的,则您可能需要检查如何从作业(https://laravel.com/docs/5.7/queues#creating-jobs)调度电子邮件事件。