Laravel 6 从不发送电子邮件

Laravel 6 never emails

我知道 Laravel 不再支持 mail() 命令,Wordpress 和可能所有其他系统都使用它来简单地发送电子邮件。

https://github.com/swiftmailer/swiftmailer/issues/866 表明他们现在需要 smtp。好的,但即使您注册了 smtp 服务,并输入所有详细信息,如:

https://www.bnmetrics.com/blog/sending-email-using-mailgun-laravel5

php artisan config:cache ...重复...以"smtp"或"mailgun"作为api,它甚至无法发送内置的重置密码Laravel 用户系统。

预期响应代码 250 但收到代码“530”,消息“530 5.7.1 需要身份验证”

更糟糕的是,即使我设置了

,它也永远不会根据该错误消息更改

MAIL_HOST=smtp.example.com

它永远不会是不同的错误消息。这让我觉得 Laravel Mail 存在严重问题(除了它禁止使用标准 mail/sendmail 之外,几乎任何正确配置的服务器都可以做到)。有没有办法我可以安装版本 5.4.4,根据 here,这显然是最后一个工作版本,或者有没有更好的方法让 Laravel 邮件工作......有或没有外部服务smtp?

如果 php artisan config:cache 不起作用,并且您正在使用 Laravel 队列或 Horizo​​n 在后台使用电子邮件,您应该 运行:

php artisan queue:restart

php artisan horizon:terminate

确保工作人员能够看到配置更改。当然你应该有 Supervisor configured 到 运行 那些被停止后的队列工作者

Route::get('/sometesturl', function() {
    var_dump(Config::get('mail'));
    echo config('mail.port');
    echo config('mail.driver');
    echo config('mail.username');exit;
});

显示甚至没有用户名。查看 .env 文件,我发现添加的 MAIL_ 变量被下面的一些默认值覆盖!