Laravel:从Mailable获取bad_domains

时间:2018-09-14 18:11:47

标签: php laravel swiftmailer

我正在这样向Laravel发送邮件:

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

我希望有一个包含bad_domain响应的所有用户组成的数组。我在docs中发现Laravel使用了具有a way to find bad_domain respones的Swiftmailer:

// 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()访问)进行此操作。

使用Laravel中的Mailable时,是否有任何简单的方法来获取bad_domain?

1 个答案:

答案 0 :(得分:0)

  

您只能访问bad_domains,而不能通过Swiftmailer(Swiftmailer 4 does not retrieve bounces as $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();
        }
    }