【问题标题】:Sending Bulk emails in Laravel在 Laravel 中发送批量电子邮件
【发布时间】:2019-04-12 13:16:08
【问题描述】:

如何在 laravel 中实现批量发送邮件

下面是我目前实现此目的的代码,但由于有 10K 用户,我收到 Http 错误 504。

public function sendNewsletter(){

    $applicants = User::applicant()
                    ->whereMailSubscription(true)
                    ->get();

    $newsletter = NewsLetter::query()->where('id',$this->id)->first();
    $subject = $newsletter->subject;
    $message = $newsletter->message;

    foreach($applicants as $applicant){
        Mail::to($applicant)->queue(new NewsLetters($applicant,$subject,$message));
    }
}

【问题讨论】:

  • 我想我会推荐使用 Mailchimp 之类的东西来发送时事通讯。
  • 不,这只是示例,但我的应用程序@Ruub 中还有其他群发邮件活动
  • 您可以将上面的代码放入作业中,这样您就不必等待它对所有邮件进行排队。

标签: laravel mailing


【解决方案1】:

你可以使用像 Sendgrid 这样的外部事务性电子邮件服务,它已经集成在 Laravel 中,开箱即用。

【讨论】:

    【解决方案2】:

    您可以使用job 来排队您的邮件。这样您就不必等待所有邮件都排队了。

    在这种情况下,您可以使用例如php artisan make:job SendNewsletter 生成作业类,然后将上述函数中的代码粘贴到新作业类的handle 函数中。然后在您的 sendNewsletter 函数中,您可以简单地排队作业类的新实例,例如SendNewsletter::dispatch().

    我还建议 "chunking" 您从 users 表中获取结果,因为您将获取如此多的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 2021-02-08
      相关资源
      最近更新 更多