laravel 邮件门面队列功能将邮件发送到错误的邮件主机

问题描述

我使用 Laravel 5.8 版。 为了通过队列发送非阻塞邮件,我使用 documents 中描述的邮件外观。 在开发中,我使用 mailtrap.io 来证明邮件已发送,在生产中我使用实际的 smtp 服务器。 使用 Mail::send 方法通过实际的 smtp 服务器发送邮件。使用 Mail::queue 方法邮件仍然通过 mailtrap.io 服务器发送,尽管我刷新了配置缓存。

我能找到的文件中对 mailtrap.io 的唯一引用是在我的开发 .env 文件中,我没有在生产中使用。

我不明白为什么使用队列将邮件发送到 mailtrap.io 服务器,而不是像在邮件外观上使用发送那样发送到 smtp 服务器。

解决方法

找到了。以 php artisan queue:work 启动的线程保持旧配置,直到它们停止(并重新启动)。 我在系统上运行主管来启动线程。我在维护模式和临时开发环境中这样做。这保留了队列的 mailtrap.io 引用。 停止并重新启动主管后,线程现在使用生产环境,从而使用正确的 smtp 服务器。