我想发送多封电子邮件。我使用下面的代码发送多封电子邮件: -
$emails = ['[email protected]', '[email protected]'];
Mail::send('emails.email-marketing-template', [], function($message) use ($emails)
{
$message->to($emails)->subject('This is test e-mail');
});
var_dump( Mail:: failures());
exit;
如果我将其发送给单个用户,它可以正常工作,但不适用于多个用户。我该如何向多个用户发送电子邮件?
来自the 5.5 docs:
to方法接受电子邮件地址,用户实例或用户集合。如果传递对象或对象集合,邮件程序将在设置电子邮件收件人时自动使用其
name
属性,因此请确保这些属性在您的对象上可用。
所以,你可以这样做:
$users = User::get();
Mail::to($users)->send(new OrderShipped($order));
或者您可以使用name
和email
键传递数组:
$users = [
['name' => 'John', 'email' => '[email protected]'],
['name' => 'Jane', 'email' => '[email protected]'],
['name' => 'Max', 'email' => '[email protected]'],
];
我更喜欢通过queue / spool从Laravel和Symfony发送电子邮件。了解更多关于queueing emails in Laravel的信息。
队列电子邮件比立即发送邮件更好,因为支持请求的主进程不等待电子邮件发送过程。
如果您使用Mail:queue
,您可以在循环中向许多收件人发送电子邮件