【问题标题】:Sending email to multiple recipients using Laravel使用 Laravel 向多个收件人发送电子邮件
【发布时间】:2022-01-02 13:50:15
【问题描述】:

我尝试向多个收件人发送电子邮件。我使用循环发送多次,但它似乎不起作用,因为我只收到了 1 封电子邮件。我在互联网上搜索指南,但没有找到与此问题相关的任何内容。

$mails = User::select('users.name','users.staffid','users.email')->get();

foreach($mails as $mail)
{
    $data[] = [
        'name'     => $mail->name,
        'username' => $mail->staffid,
        'email'    => $mail->email
    ];  
}

foreach($data as $dat)
{
    Mail::send('email.sendReminder', ["data1"=>$dat], function($message) use ($dat) {
        $message->from('test@gmail.com', 'Test Reminder');
        $message->to($dat['email']);
        $message->subject('Reminder');
    });
}

【问题讨论】:

标签: laravel


【解决方案1】:

您正在使用队列作业吗?您必须使用它,否则您的服务器可能无法响应多封电子邮件。其次,您同时发送多封电子邮件可能是您应该尝试的。

$mails = User::select('users.name','users.staffid','users.email')->get();

foreach($mails as $dat)
{

Mail::send('email.sendReminder', ["data1"=>$dat], function($message) use ($dat) {
    $message->from('test@gmail.com', 'Test Reminder');
    $message->to($dat['email']);
    $message->subject('Reminder');
});

}

【讨论】:

    【解决方案2】:

    只需将函数包装到一个循环中即可发送多封电子邮件。下面的代码对我有用

    Mail::send(['html' => 'admin.email-template.lowstock'], array('totalUsers' => $totalUsers, 'item' => $item,'data' =>$data), function ($message) use ($user_to_mail, $item) {
                    $message->from('POS@gmail.com', 'POS');
                    $message->subject('Notification Mail');
                    foreach ($user_to_mail as $mail) {
                        $message->to($mail->email);
                    }
    
                });
    

    【讨论】:

      猜你喜欢
      • 2019-04-22
      • 1970-01-01
      • 2012-05-18
      • 2018-07-01
      • 2014-06-22
      • 1970-01-01
      • 2017-12-05
      相关资源
      最近更新 更多