Laravel 5.4 Mailables 将电子邮件地址加在一起
Laravel 5.4 Mailables adding email addresses together
考虑这个代码示例,它采用一组地址并使用可邮寄功能向每个地址发送一封电子邮件。
//In my controller
$email = new EmailToWinners($sender_name, $letter);
foreach ($recipients as $recipient){
Mail::to($recipient)->send($email);
}
//In my App\Mail\EmailToWinner
public function build()
{
return $this->view('emails.winner-email');
}
所有电子邮件都可以正常发送,但是当我测试它时我注意到,它正在堆叠电子邮件。
所以我在日志中得到了这个。
[2017-02-16 15:58:59] local.DEBUG: Message-ID: <250443348fee18f568f4f263153d5101@testing.dev>
Date: Thu, 16 Feb 2017 15:58:59 +0000
Subject: Email To Winner
From: Example Dev <example@me.dev>
To: 1@example.com
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
[2017-02-16 15:58:59] local.DEBUG: Message-ID: <1b5f39ef0cc17d4d8573019f3d5ec808@testing.dev>
Date: Thu, 16 Feb 2017 15:58:59 +0000
Subject: Email To Winner
From: Example Dev <example@me.dev>
To: 1@example.com, 2@example.com
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
[2017-02-16 15:58:59] local.DEBUG: Message-ID: <ddf6c62a7f881f9381693435b48ef5a3@testing.dev>
Date: Thu, 16 Feb 2017 15:58:59 +0000
Subject: Email To Winner
From: Example Dev <example@me.dev>
To: 1@example.com, 2@example.com, 3@example.com
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
如果您查看电子邮件。第一封电子邮件显示给
1@example.com
第二个显示给
1@example.com、2@example.com
第三个显示1@example.com、2@example.com、3@example.com
因此第一个人收到 3 封电子邮件。
我做错了什么?
我认为您需要像这样为每个收件人创建一个新的电子邮件对象。
foreach ($recipients as $recipient){
Mail::to('$recipient')->send(new EmailToWinners($sender_name, $letter));
}
您可以将一组用户传递给 to
方法:
Mail::to($recipients)->send(new EmailToWinners());
The to method accepts an email address, a user instance, or a collection of users. If you pass an object or collection of objects, the mailer will automatically use their email and name properties when setting the email recipients, so make sure these attributes are available on your objects
考虑这个代码示例,它采用一组地址并使用可邮寄功能向每个地址发送一封电子邮件。
//In my controller
$email = new EmailToWinners($sender_name, $letter);
foreach ($recipients as $recipient){
Mail::to($recipient)->send($email);
}
//In my App\Mail\EmailToWinner
public function build()
{
return $this->view('emails.winner-email');
}
所有电子邮件都可以正常发送,但是当我测试它时我注意到,它正在堆叠电子邮件。
所以我在日志中得到了这个。
[2017-02-16 15:58:59] local.DEBUG: Message-ID: <250443348fee18f568f4f263153d5101@testing.dev>
Date: Thu, 16 Feb 2017 15:58:59 +0000
Subject: Email To Winner
From: Example Dev <example@me.dev>
To: 1@example.com
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
[2017-02-16 15:58:59] local.DEBUG: Message-ID: <1b5f39ef0cc17d4d8573019f3d5ec808@testing.dev>
Date: Thu, 16 Feb 2017 15:58:59 +0000
Subject: Email To Winner
From: Example Dev <example@me.dev>
To: 1@example.com, 2@example.com
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
[2017-02-16 15:58:59] local.DEBUG: Message-ID: <ddf6c62a7f881f9381693435b48ef5a3@testing.dev>
Date: Thu, 16 Feb 2017 15:58:59 +0000
Subject: Email To Winner
From: Example Dev <example@me.dev>
To: 1@example.com, 2@example.com, 3@example.com
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
如果您查看电子邮件。第一封电子邮件显示给 1@example.com
第二个显示给 1@example.com、2@example.com
第三个显示1@example.com、2@example.com、3@example.com
因此第一个人收到 3 封电子邮件。
我做错了什么?
我认为您需要像这样为每个收件人创建一个新的电子邮件对象。
foreach ($recipients as $recipient){
Mail::to('$recipient')->send(new EmailToWinners($sender_name, $letter));
}
您可以将一组用户传递给 to
方法:
Mail::to($recipients)->send(new EmailToWinners());
The to method accepts an email address, a user instance, or a collection of users. If you pass an object or collection of objects, the mailer will automatically use their email and name properties when setting the email recipients, so make sure these attributes are available on your objects