Laravel发送或排队邮件取决于配置设置

时间:2019-01-16 21:23:21

标签: laravel

我正在寻找一种根据配置设置发送或排队电子邮件的简洁方法。

现在,每次发送电子邮件时,我都必须做类似的事情

$mailContent = new AccountNotification($account);
$mailObject = Mail::to($email);
if(config('app.queueemail')){
   $mailObject->queue($mailContent);
} else {
   $mailObject->send($mailContent);
}

必须有一种更简单的方法来执行此操作,因此我不必每次发送电子邮件时都重复此代码。

1 个答案:

答案 0 :(得分:2)

扩展@ceejayoz的注释,一种更简单的方法也可以是使用全局Helper函数。

例如,您可能拥有一个send_email()全局函数,该函数将根据应用程序的配置发送/排队电子邮件。

if ( ! function_exists('send_email')) {
    /**
    * Sends or queues email
    *
    * @return mixed
    */
    function send_email($mailer, $content)
    {
        return config('app.queueemail')
            ? $mailer->queue($content)
            : $mailer->send($content); 
    }
}

要使用它,您可以这样做:

send_email($mailer, $content);