Laravel 5一次向多个用户发送邮件

时间:2018-03-29 09:14:52

标签: laravel email eloquent laravel-5.5

我正在尝试向所有用户发送邮件。但我无法弄清楚如何做到这一点。在我的控制器中,我做到了这一点。

public function send_mail()
{
    $mails = Joinus::all();
    $array = array();
    $allmails = array();
    foreach ($mails as $mail)
    {
        $allmails = array_push($array, $mail->email);

    };
    Mail::to($allmails)->send((new SendMail(new Joinus('email')))->delay(30));
}

我收到所有类型的错误。最后一个是

__construct() must be of the type array

在我的SendMail.php

public function __construct($email)
{
    $this->email = $email;
}

我浪费了一天而不能做。我非常感谢你的帮助。谢谢你的进步。

3 个答案:

答案 0 :(得分:1)

public function send_mail()
{
    $mails = Joinus::pluck('email')->toArray();
    foreach ($mails as $mail)
    {
        Mail::to($mail)->send((new SendMail(new Joinus($mail)))->delay(30));

    };

}

答案 1 :(得分:0)

你可以试试这个。

public function send_mail()
{
    $mails = Joinus::all();
    $array = array();
    $allmails = array();
    foreach ($mails as $mail)
    {
        $allmails = array_push($array, $mail->email);

    };
    Mail::to($allmails)->send(new SendMail(new Joinus('email')))->delay(30);
}

谢谢,

答案 2 :(得分:0)

$allmails = array_push($array, $mail->email);错了

正确答案只是array_push($array, $mail->email);

array_push($array, $mail->email);这会返回一个数组。

$allmails = array_push($array, $mail->email); 但这是返回int值。