Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 在Laravel的foreach循环中发送邮件_Php_Email_Laravel_Foreach - Fatal编程技术网

Php 在Laravel的foreach循环中发送邮件

Php 在Laravel的foreach循环中发送邮件,php,email,laravel,foreach,Php,Email,Laravel,Foreach,我有这个要求,我需要从我的应用程序中向to和CC头中的所有用户发送单独的邮件 例如,我加上abc@xyz.com在至;asd@fgh.com在里面qwe@rty.com抄送。这里有三个电子邮件ID,累积为收件人和抄送 我需要给这三个人发一封单独的邮件。所以abc@xyz.com将仅在邮件标题中看到他的姓名,对于抄送收件人如此 我的方法是将所有电子邮件合并到一个数组中,然后运行foreach循环,类似这样: foreach($emails as $email) { Mail::send(.

我有这个要求,我需要从我的应用程序中向to和CC头中的所有用户发送单独的邮件

例如,我加上abc@xyz.com在至;asd@fgh.com在里面qwe@rty.com抄送。这里有三个电子邮件ID,累积为收件人和抄送

我需要给这三个人发一封单独的邮件。所以abc@xyz.com将仅在邮件标题中看到他的姓名,对于抄送收件人如此

我的方法是将所有电子邮件合并到一个数组中,然后运行foreach循环,类似这样:

foreach($emails as $email) {
    Mail::send(..... 
    {
        $message->to($email);
    });
}

这是更好的方法吗?或者我可以遵循的任何其他更好的方法?

如果您有很多用户,那么在处理请求时同步执行该操作是个坏主意,因为它很可能会超时。最好使用
Mail::queue
发送电子邮件。另外,如果你有很多用户,你可能想考虑使用一个单独的服务来发送电子邮件,以避免在短时间内尝试发送大容量可能出现的任何问题。我可以使用哪些单独的服务?有很多服务,这取决于你是否正在寻找免费服务。例如,您可以使用免费计划每月最多发送12000封电子邮件,也可以根据需要使用任何付费计划。当然,您可以使用或,Laravel提供了现成的集成。
if (!empty($users)) {
    foreach ($users as $user) {
        Mail::send('emails.acitvation', ['item' => $xyz, 'user' => $user],
            function ($message) use ($user) {
                $message->subject('your subject here');
                $message->to($user['email']);
            });
    }
}