我使用mailgun发送了Laravel 5.2的邮件。它在config / services.php上配置如下:
'mailgun' => [
'domain' => env('mailgun_domain','mydomain.com'),
'secret' => env('mailgin_secret','my-secret-key-132152345423')
],
但是,我需要在调用Mail :: send之前更改运行时的设置,以使用正确的服务参数。它必须在运行时多次更改。
我无法通过.env文件对其进行配置,因为所有数据都将来自数据库,用户可在此设置域和密码。
答案 0 :(得分:24)
您可以使用config()
帮助程序在运行时动态设置配置值:
config(['services.mailgun' => $arrayWithNewSettings]);
答案 1 :(得分:0)
我认为如果你按照this example进入正确的轨道。
\Illuminate\Mail\TransportManager.php
有一个方法createMailgunDriver()
,它从默认情况下无法更改的硬位置提取服务。
您需要编写自己的服务提供商,扩展MailServiceProvider
并推送自己的传输,以便您可以按照自己的方式从数据库中提取设置。