You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel未使用配置的邮件主机 报错SSL版本号错误如何解决

Laravel 邮件配置异常问题排查解决步骤

1. 定位配置读取异常原因

你实际读取到的SMTP主机和.env配置不符,优先排查配置覆盖问题:

  • 检查项目根目录是否存在.env.local、.env.${APP_ENV}这类环境专属配置文件,Laravel会优先加载这类文件的配置,覆盖默认.env的同名参数
  • 全局搜索项目代码,排查是否有服务提供者、中间件、第三方扩展包的配置文件里硬编码了smtp.hostinger.com,强制覆盖了mail配置项
  • 检查本地/服务器的hosts解析规则,确认是否存在smtp.mailtrap.io的强制指向规则,导致实际请求被转发到hostinger的SMTP服务器
  • 临时在路由中加入测试代码dd(config('mail.mailers.smtp.host')),访问路由打印实际生效的配置值,确认配置读取链路是否正常

2. 彻底清理所有类型缓存

常规缓存清理不全也会导致配置不生效,执行完整清理命令:

# 清理配置缓存
php artisan config:clear
# 清理应用缓存
php artisan cache:clear
# 清理路由缓存
php artisan route:clear
# 清理视图缓存
php artisan view:clear

如果你使用了队列异步发送邮件,必须重启队列进程:队列启动时会一次性加载所有配置,修改配置后不重启队列永远会用旧配置,执行命令:

php artisan queue:restart

生产环境可以在清理完缓存后重新生成配置缓存:php artisan config:cache,本地开发环境不需要执行该命令,避免修改配置不生效。

3. 解决SSL版本报错问题

配置修正为mailtrap后如果仍报SSL错误,按以下方案调整:

  • 首先确认mailtrap的端口和加密配置匹配:你当前配置的2525端口搭配tls加密是官方推荐配置,如果报错可以尝试将.env中的MAIL_ENCRYPTION改为null,mailtrap的2525端口也支持非加密传输
  • 如果还是报错,在config/mail.php的smtp配置中新增stream参数,放宽SSL校验规则:
'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,
    'auth_mode' => null,
    // 新增以下SSL配置
    'stream' => [
        'ssl' => [
            'allow_self_signed' => true,
            'verify_peer' => false,
            'verify_peer_name' => false,
        ],
    ],
],

内容的提问来源于stack exchange,提问作者Ogunleye Oluwatosin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:36:05