Laravel生产环境发送邮件报错(mailhog连接失败),求解决方法
Laravel生产环境邮件发送失败修复方案
问题诊断
错误提示尝试连接mailhog:1025,但你的邮件配置明确指向smtp.leet.my,说明实际运行时加载的配置未更新,config:cache未生效或存在配置覆盖情况。
修复步骤
- 彻底重置缓存:执行以下命令清除所有缓存并重新生成配置缓存:
php artisan config:clear php artisan cache:clear php artisan route:clear composer dump-autoload php artisan config:cache - 验证生产环境
.env文件:确认服务器上的.env文件中MAIL_HOST、MAIL_PORT等参数与你提供的配置完全一致,避免本地配置和生产环境配置脱节。 - 检查
config/mail.php配置:确保mailers.smtp节点的host、port等参数是通过env()函数读取环境变量,而非硬编码mailhog。示例正确配置:'smtp' => [ 'transport' => 'smtp', 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 'port' => env('MAIL_PORT', 587), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, 'local_domain' => env('MAIL_EHLO_DOMAIN'), ], - 测试网络连通性:在生产服务器上执行命令,检查能否正常访问你的SMTP服务器:
若无法连通,需排查服务器防火墙、网络策略是否允许访问该SMTP端口。telnet smtp.leet.my 587 # 或使用nc命令替代 nc -zv smtp.leet.my 587
内容的提问来源于stack exchange,提问作者Jabri Juhinin
相关产品推荐
相关产品推荐

