Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 向1000';他在用拉威尔和邮枪_Php_Laravel_Email_Mailgun - Fatal编程技术网

Php 向1000';他在用拉威尔和邮枪

Php 向1000';他在用拉威尔和邮枪,php,laravel,email,mailgun,Php,Laravel,Email,Mailgun,我使用的是Laravel5.5和邮枪。我想向700多个收件人发送电子邮件活动,而且这个列表可能会增加到数千个。目前,我正在循环浏览每个电子邮件地址,并一次发送一封电子邮件。因此,通常只有大约530封电子邮件发出。我在网上搜索过,似乎找不到一个很好的解释,说明如何更有效地处理这一问题,以便发送所有电子邮件。如有任何建议,将不胜感激 public function mailCampaign() { //Code to get all email data in JSON $ema

我使用的是Laravel5.5和邮枪。我想向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);
}

你不应该一封接一封地发电子邮件。改用MailgunAPI。您可以使用API和软件包发送数千封电子邮件

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


将所有邮件/操作放在一个队列中,并定期(每分钟?)处理该队列以处理最旧的项目。我发现了这一点。它说注意:Mailgun将每条邮件的收件人限制在1000人,所以我不相信它能解决我的问题。“我会试试看,我可能把这个解释错了。”杜克斯努兹只是用块。每块1000封电子邮件。我正朝着这个方向想,你会用雄辩的话吗?谢谢大家的支持,我对Laravel和Mailgun还不熟悉。是的,我会使用查询生成器块。如果你从另一个来源获取数据,Laravel有
chunk()
收集方法。是的,我从另一个来源获取数据。我使用的是Guzzle,数据来自单独的服务器。返回JSON格式的数据。chunk还能用吗?