Laravel 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;
}

Я зря потратил один день и не могу заработать. Я очень благодарен за вашу помощь. Спасибо заранее.

вам нужно быть более конкретным во всех типах ошибок.

Parth Pandya 29.03.2018 11:36

Если вы получаете всевозможные ошибки, лучше всего начать с stackoverflow.com/questions/12769982/….

apokryfos 29.03.2018 11:44

Пожалуйста, проверьте мой ответ ниже.

Pratik Mehta 29.03.2018 12:26

Если вы не хотите, чтобы все получатели вашего электронного письма видели все остальные адреса электронной почты, вам следует подумать об использовании Mail::bcc($emails)->send(...) вместо Mail::to($emails)->send(...). И если у вас есть требование, чтобы каждый получатель получал отдельную ссылку в электронном письме (например, ссылку для регистрации), вам все равно придется отправлять одно письмо на каждый адрес - это означает, что ни одно из вышеперечисленных решений не будет работать.

Namoshek 29.03.2018 13:09

Когда я сказал, что король ошибок. То есть я много работал. Но сейчас здесь нет кода. Это последнее, что я сделал. Ошибки связаны с системой рассылки. Я просто не знаю, как отправлять массовую рассылку.

Ali Özen 29.03.2018 16:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
7
5
5 742
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете попробовать это.

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);
}

Спасибо,

Спасибо. Но дело не в скобках.

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

    };

}

Добавьте к ответу описание проблемы и исправления.

Munim Munna 31.03.2018 07:42
Ответ принят как подходящий

$allmails = array_push($array, $mail->email); не прав

Правильный ответ - просто array_push($array, $mail->email);

array_push($array, $mail->email); возвращает массив.

$allmails = array_push($array, $mail->email); Но это возвращает значение типа int.

Другие вопросы по теме