在 Laravel 中在运行时将 Mailgun 更改为 SMTP

Change Mailgun to SMTP at Runtime in Laravel

Laravel 版本 5.2.22 我试过这些在运行时将 mailgun 更改为 smtp:

config(['MAIL_DRIVER' => 'SMTP']); //not work.
Config::set('MAIL_DRIVER', 'SMTP'); //not work.

最后,我完成了这些工作:

Config::set('mail.driver', 'SMTP'); //works.
config(['mail.driver'=>'smtp']); //works.

我真的不知道为什么要把 MAIL_DRIVER 改成 mail.driver。

Config::get('mail.driver'); //you can use this to check the config.

A​​lex给自己的答案是解决方案,应该是:

Config::set('mail.driver', 'SMTP'); 

以下不起作用,因为定义邮件驱动程序的环境变量通常称为 MAIL_DRIVER,而不是配置变量。 (请参阅 config/mail.php 以了解 config('mail.driver') 的分配)。

Config::set('MAIL_DRIVER', 'SMTP'); //config var MAIL_DRIVER does not exist yet / is not used.