Laravel 5.3 如何在运行时使用和切换多个邮件驱动程序?

How to use and switch at runtime multiple mail drivers in Laravel 5.3?

有时我们需要使用多个邮件驱动来覆盖不同的区域,但现在Laravel 5.3只支持一个,我们如何扩展它以支持更多的邮件驱动并能够在运行时切换驱动?

与所有 Laravel classes 一样,邮件程序实现标准 laravel 接口:

class Mailer implements MailerContract, MailQueueContract
{
  ...
}

如果你想创建自己的邮件程序,那么你需要做的就是在你自己的中实现合约 class:

class MyMailer implements MailerContract, MailQueueContract
{

}

要使用这些不同的邮件程序,您需要覆盖 MailServiceProvider class 中的 register() 函数以 return 您需要的邮件程序实例。