我试着从数据库中填写一封电子邮件的收件人。如果我将地址直接写到$mail->to,一切都可以正常工作,但不能使用以下代码?:
$users = User::where('message_receiver','=',true)->get();
$data = array(
'url' => Config::get('app.url'),
'name' => 'test'
);
Mail::send('emails.message', $data, function($mail) use ($users)
{
$mail->from('test@localhost.de','test@localhost.de');
foreach ($users AS $user) {
$mail->to($user->email, $user->firstname.' '.$user->surname);
}
$mail->subject('New Message');
});循环中的print_r($user->email)会转储正确的地址!
发布于 2014-01-14 19:04:40
我从来没有和Laravel合作过,但是通过这个链接http://bundles.laravel.com/bundle/Messages
据我所知,要向多个电子邮件地址发送电子邮件,您必须首先将所有地址添加到数组中,然后将该数组传递给$message->to()方法,不是吗?
这是该链接中的一个示例:
Message::send(function($message)
{
$message->to(array('someone@gmail.com', 'email@address.com' => 'name'));
$message->cc('more@addresses.com');
$messages->bcc(array('evenmore@address.com' => 'Another name', 'onelast@address.com'));
$message->from('me@gmail.com', 'Bob Marley');
$message->subject('Hello!');
$message->body('I really like spamming people!');
});因此,在我的想法中,您应该尝试从$users生成数组,然后将其传递给方法,如下所示:
Mail::send('emails.message', $data, function($mail) use ($users)
{
$mail->from('test@localhost.de','test@localhost.de');
foreach ($users AS $user) {
$receivers = array_add($receivers, $user->email, $user->email);
}
$mail->to($receivers);
$mail->subject('New Message');
});我不确定我是否正确地使用了数组,但是我想你已经知道如何去做了。
https://stackoverflow.com/questions/21110399
复制相似问题