我正在使用Laravel 5.3和SES驱动程序来发送电子邮件。我已经设置了我的数据库和路由,以便每当我发送退回的电子邮件时,我都会收到通知并将此电子邮件添加到"无效电子邮件"表中。
现在我需要设置我的应用程序,以便它仅在电子邮件不在此退回表中时才发送电子邮件。这是对此应用程序发送的每封电子邮件进行的检查,没有例外。
是否有一种简单的方法可以在电子邮件驱动程序上进行此检查,或者我是否需要将所有呼叫更改为邮件外观并在发送电子邮件之前进行检查?
我建议创建自己的Mailable
类,该类继承自IlluminateMailMailable
。
那里有一个名为buildRecipients()
的方法,如下所示:
/**
* Add all of the recipients to the message.
*
* @param IlluminateMailMessage $message
* @return $this
*/
protected function buildRecipients($message)
{
foreach (['to', 'cc', 'bcc', 'replyTo'] as $type) {
foreach ($this->{$type} as $recipient) {
$message->{$type}($recipient['address'], $recipient['name']);
}
}
return $this;
}
您可以挂钩(覆盖)它并添加一些逻辑,以便在收件人不在"阻止"列表中时才添加收件人。