Laravel 5多个邮件驱动程序

时间:2015-03-11 19:20:26

标签: laravel laravel-5 swiftmailer

是否可以在laravel 5上安装多个邮件驱动程序?

我问的原因是因为我在Laravel 5中构建应用程序而我正在使用mandrill。我希望当用户通过网站与我联系以使用我的托管smtp时,以及当我向我的会员发送电子邮件以使用mandrill时。到目前为止,mandrill正在以两种方式使用,因为它是我的应用程序中的默认驱动程序。

谢谢

3 个答案:

答案 0 :(得分:1)

我找到了解决方案。我构建了两个名为Mailer和secondaryMailer的类。邮件程序类使用我正在使用的默认laravel邮件(mandrill)。 secondaryMailer类使用gmail或您想要使用的任何驱动程序。这是secondaryMailer类的代码

 use Illuminate\Support\Facades\Mail;
 use Swift_Mailer;

 class SecondaryMailer {

public function Send($view, array $data, array $params)
{
    // Backup your default mailer
    $backup = Mail::getSwiftMailer();

    // Setup your gmail mailer
    $transport = \Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls');
    $transport->setUsername('Your-gmail-username');
    $transport->setPassword('Your-Password');
    // Any other mailer configuration stuff needed...
    $gmail = new Swift_Mailer($transport);

    // Set the mailer as gmail
    Mail::setSwiftMailer($gmail);

    // Send your message
    Mail::send($view, $data, function($message) use($params)
    {
        $message->from($params['email'])->to($params['toEmail'])->subject($params['subject']);
    });

    // Restore your original mailer
    Mail::setSwiftMailer($backup);

}

}

这是我找到解决方案的帖子。感谢 Bogdan multiple mail configurations

答案 1 :(得分:0)

请查看此项目:https://github.com/kevinzheng/laravel-switchable-mail,只需安装并配置它,它将自动保留并在运行时切换不同的邮件驱动程序。

答案 2 :(得分:0)

Laravel version 7.x文档:“通过特定邮件发送器发送邮件” 部分中,您现在可以说明要在发送电子邮件时使用的邮件驱动程序。您只需在app/config/mail.php中正确配置所有连接和凭据即可。配置完成后,您可以通过mailer()函数指定驱动程序的名称,如下所示:

Mail::mailer('postmark')
    ->to($request->user())
    ->send(new OrderShipped($order));

我希望它能对某人有所帮助。