首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel mail::使用mail->to循环发送

Laravel mail::使用mail->to循环发送
EN

Stack Overflow用户
提问于 2014-01-14 17:52:49
回答 1查看 4.9K关注 0票数 1

我试着从数据库中填写一封电子邮件的收件人。如果我将地址直接写到$mail->to,一切都可以正常工作,但不能使用以下代码?:

代码语言:javascript
复制
$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)会转储正确的地址!

EN

回答 1

Stack Overflow用户

发布于 2014-01-14 19:04:40

我从来没有和Laravel合作过,但是通过这个链接http://bundles.laravel.com/bundle/Messages

据我所知,要向多个电子邮件地址发送电子邮件,您必须首先将所有地址添加到数组中,然后将该数组传递给$message->to()方法,不是吗?

这是该链接中的一个示例:

代码语言:javascript
复制
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生成数组,然后将其传递给方法,如下所示:

代码语言:javascript
复制
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');
});

我不确定我是否正确地使用了数组,但是我想你已经知道如何去做了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21110399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档