Symfony swiftmailer отправляет несколько писем в цикле - PullRequest
0 голосов
/ 21 февраля 2019

Мне нужно отправить несколько писем с помощью symfony swiftmailer внутри цикла.Это мой код.

public function __construct($name = null, \Swift_Mailer $mailer, EngineInterface $templating) {
        parent::__construct($name)
        $this->mailer = $mailer;
        $this->templating = $templating;
}

protected function execute(InputInterface $input, OutputInterface $output) {
  foreach ($ads as $ad) {
                if($counter == 10) break;
                $this->sendMail($ad->getUser()->getMail(), $ad, 'matching');
                $counter++;
  }
}

protected function sendMail($mail, $ad, $template = '') {

        if($template == 'matching'){
            $template = 'emails/matching-cars.html.twig';
        }elseif($template == 'owner'){
            $template = 'emails/matching-car-owners.html.twig';
        }

        $message = (new \Swift_Message('Hello Email'))
                ->setFrom('admin@admin.com')
                ->setTo($mail)
                ->setBody(
                $this->templating->render(
                        $template, [
                            'ad' => $ad
                        ]
                ), 'text/html'
        );

        $this->mailer->send($message);
    }

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

17: 14: 09 ОШИБКА [приложение] Возникла исключительная ситуация при очистке очереди электронной почты: ожидаетсякод ответа 354, но получил код «550» с сообщением «550 5.7.0 Запрошенное действие не выполнено: слишком много писем в секунду

1 Ответ

0 голосов
/ 22 февраля 2019

Я вижу, что содержимое электронных писем идентично.Итак, почему бы не использовать Cci или Cc вместо цикла?Это тоже преимущество для производительности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...