Laravel:仅当电子邮件不在退回列表中时才发送电子邮件

时间:2016-12-30 15:36:29

标签: php laravel email laravel-5 amazon-ses

我使用Laravel 5.3和SES驱动程序发送电子邮件。 我已经设置了我的数据库和路由,这样,每当我发送一封返回为退回的电子邮件时,我都会收到通知并将此电子邮件添加到"无效电子邮件的表格中#34;。

现在我需要设置我的应用程序,这样如果电子邮件不在此退回表中,它只会发送一封电子邮件。这是对此应用发送的每封电子邮件的检查,没有例外。

是否有一种简单的方法可以对电子邮件驱动程序进行检查,或者我是否需要更改所有对Mail外观的调用并在发送电子邮件之前进行检查?

1 个答案:

答案 0 :(得分:2)

我建议您创建自己的Mailable类,该类继承自\Illuminate\Mail\Mailable

有一种名为buildRecipients()的方法,如下所示:

/**
 * Add all of the recipients to the message.
 *
 * @param  \Illuminate\Mail\Message  $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;
}

你可以挂钩(覆盖)这个并添加一些逻辑,只有当他不在"阻止"列表。