Laravel 5.5使用ENV以外的其他电子邮件设置发送电子邮件

时间:2018-05-11 17:35:18

标签: php laravel-5

在laravel 5.5.4中,我想要一个特定的功能,通过.env文件中提到的其他邮件设置发送邮件。

我尝试过搜索,但swift提到的大多数地方现已弃用。

1 个答案:

答案 0 :(得分:0)

在发送电子邮件之前,只需致电config()->set("mail.driver", $driver)

public function sendNonEnvEmail(){
  // If you want to log this email instead of sending it
  config()->set("mail.driver", "log");
  \Mail::send(...);
}

现在我不确定您是否需要在此之后重置电子邮件驱动程序,但如果是这种情况,您可以调用以下操作:

\Mail::send(...);
config()->set("mail.driver", env("MAIL_DRIVER", "smtp"));

这会将驱动程序重置为.env文件中的默认值,或smtp未设置MAIL_DRIVER

- 编辑 -

  

在运行时设置的配置值仅为当前请求设置,不会转移到后续请求。

因此需要重置它,但如果您需要在请求中发送多封电子邮件,则可能需要这样做,具体取决于电子邮件的顺序。