Laravel: получить bad_domains от Mailable - PullRequest
       9

Laravel: получить bad_domains от Mailable

0 голосов
/ 14 сентября 2018

Я отправляю письма с помощью Laravel следующим образом:

foreach ($users as $user) {
   \Mail::to($user())->send(new Newsletter($user));
}

Я хотел бы получить массив всех пользователей, у которых был ответ bad_domain.В документах я обнаружил, что Laravel использует Swiftmailer, у которого есть способ поиска ответов bad_domain :

// Pass a variable name to the send() method
if (!$mailer->send($message, $failures))
{
  echo "Failures:";
  print_r($failures);
}

/*
Failures:
Array (
  0 => receiver@bad-domain.org,
  1 => other-receiver@bad-domain.org
)
*/

Однако я хочу использовать класс Mailable.Я не уверен, как мне это сделать с помощью Swiftmailer (к которому я могу получить доступ через \ Mail :: getSwiftMailer ()).

Есть ли простой способ получить bad_domains при использовании Mailable из Laravel?

1 Ответ

0 голосов
/ 17 сентября 2018

Вы можете получить доступ только к bad_domains, но не к возвратам с помощью Swiftmailer ( Swiftmailer 4 не получает возвраты как $ failedRecipients ).

Можно получить bad_domains с помощью

\Mail::to($user)->send(new \App\Mail\Hi());

dd(\Mail::failures());

См. Illuminate\Mail\Mailer.php

  /**
     * Send a Swift Message instance.
     *
     * @param  \Swift_Message  $message
     * @return void
     */
    protected function sendSwiftMessage($message)
    {
        try {
            return $this->swift->send($message, $this->failedRecipients);
        } finally {
            $this->forceReconnection();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...