【问题标题】:Sending Emails to Many Recipients in The 1000's Using Laravel and Mailgun使用 Laravel 和 Mailgun 向 1000 多个收件人发送电子邮件
【发布时间】:2018-07-01 03:12:25
【问题描述】:

我正在使用 Laravel 5.5 和 Mailgun。我想向 700 多个收件人发送电子邮件活动,并且此列表可能会增长到数千个。目前,我正在遍历每个电子邮件地址并一次发送一封电子邮件。结果通常只有大约 530 封电子邮件发出。我在网上搜索过,似乎找不到关于如何以更有效的方式处理此问题以便发送所有电子邮件的良好解释。任何建议将不胜感激。

public function mailCampaign()
{

    //Code to get all email data in JSON

    $emails= json_decode($data->getBody());
    $baseUrl = config('constants.base_url');

    foreach($emails as $key => $email){
        Mail::to($email)
            ->send(new EmailInstance($variable, $email, $baseUrl));
    }
    $data = ['message' => 'Success. Emails have been sent.'];
    return response()->view('emails.mail', $data, 200);
}

【问题讨论】:

  • 将所有邮件/操作放入队列并定期(每分钟?)处理该队列以处理最旧的项目。

标签: php laravel email mailgun


【解决方案1】:

您不应该一封一封地发送电子邮件。请改用 Mailgun API。您可以使用带有Bogardo/Mailgun 包的 API 发送数千封电子邮件。

Mailgun 支持通过单个 API 调用发送给一组收件人的能力。这是通过为参数指定多个收件人电子邮件地址并使用收件人变量来实现的。

【讨论】:

  • 我发现了。它说注意:Mailgun 将每封邮件的收件人数量限制为 1000,所以我不相信它会解决我的问题。我会试试看,我可能解释错了。
  • @DukesNuz 只使用块。每块 1000 封电子邮件。
  • 我在想那个方向,你会使用 Eloquent Chuncking 吗?感谢大家的所有意见,我是 Laravel 和 Mailgun 的新手。
  • 是的,我会使用查询生成器块。如果你从其他来源获取数据,Laravel 有chunk() 收集方法。
  • 是的,我正在从另一个来源获取数据。我正在使用 Guzzle,数据来自单独的服务器。以 JSON 格式返回的数据。 chunk 还能用吗?
猜你喜欢
  • 2022-01-02
  • 2019-04-22
  • 1970-01-01
  • 2014-04-14
  • 2012-05-18
  • 1970-01-01
  • 2017-10-12
相关资源
最近更新 更多