WedX - журнал о программировании и компьютерных науках

Какое максимальное количество получателей для отправки электронной почты в laravel?

Я пытаюсь отправлять электронные письма всем клиентам, использующим Laravel Mailable. У меня следующая структура почты.

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

/**
 * Class BroadcastEmail
 * @package App\Mail
 */
class BroadcastEmail extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * @var
     */
    private $title;

    /**
     * @var
     */
    private $body;

    /**
     * Create a new message instance.
     *
     * @param $title
     * @param $body
     * @return void
     */
    public function __construct($title, $body)
    {
        $this->title = $title;
        $this->body = $body;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject($this->title)->view('emails.broadcast')->with(['body' => $this->body]);
    }
}

Я использовал следующий код для отправки электронного письма.

Mail::to($recipients)->send(new BroadcastEmail($title, $message));

Здесь переменная $recipients - это массив электронных писем клиентов. Его размер может превысить 10 000 в будущем. Каков максимальный размер массива $recipients, который Mail Facade может обрабатывать для отправки электронных писем?

Я уже прочитал почтовую документацию laravel и не могу понять. Любые предложения и помощь приветствуются.

16.08.2019

  • Вы пробовали `реализации ShouldQueue`? Также вы можете отправить электронное письмо группе пользователей. 16.08.2019
  • @ Прафулла Кумар Саху, дело не в очереди. он запрашивает количество получателей, которое может быть отправлено в одном запросе. 16.08.2019

Ответы:


1

Laravel не ограничивает количество получателей. Лимит устанавливается почтовым провайдером, но стандарта для этого нет.

Большинство провайдеров позволяют использовать до 100 получателей (To + CC + BCC), но есть провайдеры, которые разрешают больше. Однако, если вы отправляете письмо с более чем 100 получателями в почтовый ящик, который не допускает такое количество получателей, почта может не прийти.

Лучшее решение для чего-то подобного - отправлять письма небольшими партиями. Это ускорит обработку и обеспечит правильную доставку писем.

16.08.2019
  • Также убедитесь, что не отправляете адреса электронной почты клиентов другим клиентам, т. Е. Не используйте to, но bcc, если вообще. 16.08.2019
  • @Namoshek, мне нужно отправить электронное письмо как отдельное письмо с уведомлением, поэтому скрытая копия не работает для меня;) 16.08.2019
  • Итак, мне нужно создавать куски писем размером около 100 и перебирать все куски? 16.08.2019
  • Я запутался. Если электронное письмо является индивидуальным, как вы его транслируете? 16.08.2019
  • @Namoshek, извините за это, я имею в виду, что одно и то же электронное письмо отправлено нескольким клиентам. Я не знаком с использованием скрытой и скрытой копии 16.08.2019
  • В этом случае вам обязательно стоит использовать скрытую копию. Если вы добавите всех клиентов в поле to, все клиенты будут видеть адреса электронной почты других клиентов, и у вас будет огромная дыра в безопасности. 16.08.2019
  • @Jerodev Хорошо, я сделаю это. 16.08.2019

  • 2

    Количество писем не фиксировано. Все зависит от характеристик вашего сервера. Электронные письма будут продолжать отправляться до тех пор, пока php.ini не остановит его из-за какой-либо конфигурации. Таким образом, количество отправленных писем не фиксировано.

    16.08.2019
  • Все зависит от характеристик вашего сервера ... Правда? Прочтите принятый ответ еще раз 16.08.2019
  • Да, действительно, ежедневно наш инструмент рассылает электронные письма всем сотрудникам компании, а это около 1000 пользователей. Надеюсь, это развеет ваши сомнения. Я сам тестировал, отправляя электронные письма 400 пользователям одновременно. 16.08.2019
  • Надеюсь, это развеет ваши сомнения .... Нет! Это не имеет ничего общего с моим комментарием выше 16.08.2019
  • Извините, я работаю на выделенных серверах, а не на виртуальном хостинге 16.08.2019

  • 3

    У меня были те же проблемы с тестированием писем с помощью mailtrap в моем проекте. Вот быстрое решение для отправки почты на ваш локальный хост.

    В моем слушателе, где я отправляю электронные письма пользователям (более 400 пользователей), я использовал помощник Laravel report и цикл try-catch, где функция отправки писем не откажет, если одно из писем не прошло.

    try{
       Mail::to($user)->send(new NewsEmail($user, $news));
    }catch (\Exception $e){
       report ($e)
    } 
    

    Вспомогательная функция отчета позволяет быстро сообщить об исключении, используя метод отчета обработчика исключений, не отображая страницу с ошибкой. Подробнее об этом читайте в официальной документации.

    16.08.2019
  • Что ж, в моем проекте эта логика была более сложной. Вместо метода report () я добавил функцию для хранения всех неудачных писем в таблице базы данных. Итак, когда электронное письмо не удалось отправить по какой-либо причине, оно сохранялось в таблице с сообщением об исключении, и следующее электронное письмо помещалось в очередь. 16.08.2019
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

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

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]