Я пытаюсь рассылать письма всем пользователям. Но я не могу понять, как это сделать. В своем контроллере я сделал это.
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;
}
Я зря потратил один день и не могу заработать. Я очень благодарен за вашу помощь. Спасибо заранее.
Если вы получаете всевозможные ошибки, лучше всего начать с stackoverflow.com/questions/12769982/….
Пожалуйста, проверьте мой ответ ниже.
Если вы не хотите, чтобы все получатели вашего электронного письма видели все остальные адреса электронной почты, вам следует подумать об использовании Mail::bcc($emails)->send(...) вместо Mail::to($emails)->send(...). И если у вас есть требование, чтобы каждый получатель получал отдельную ссылку в электронном письме (например, ссылку для регистрации), вам все равно придется отправлять одно письмо на каждый адрес - это означает, что ни одно из вышеперечисленных решений не будет работать.
Когда я сказал, что король ошибок. То есть я много работал. Но сейчас здесь нет кода. Это последнее, что я сделал. Ошибки связаны с системой рассылки. Я просто не знаю, как отправлять массовую рассылку.






Вы можете попробовать это.
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);
}
Спасибо,
Спасибо. Но дело не в скобках.
public function send_mail()
{
$mails = Joinus::pluck('email')->toArray();
foreach ($mails as $mail)
{
Mail::to($mail)->send((new SendMail(new Joinus($mail)))->delay(30));
};
}
Добавьте к ответу описание проблемы и исправления.
$allmails = array_push($array, $mail->email); не прав
Правильный ответ - просто array_push($array, $mail->email);
array_push($array, $mail->email); возвращает массив.
$allmails = array_push($array, $mail->email);
Но это возвращает значение типа int.
вам нужно быть более конкретным во всех типах ошибок.