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

2022年5月30日后Laravel 5.8无法发送邮件如何修复

Laravel 5.8 2022年5月30日后邮件发送异常修复方案

故障根因

2022年5月30日全球主流邮件服务商统一下线TLS1.0/1.1加密协议支持,国内云厂商同步默认封禁云服务器25端口的非加密出站连接,Laravel 5.8内置的SwiftMailer组件默认未强制指定TLS1.2加密版本,原有旧配置无法适配新的服务规则,直接导致此前正常的邮件发送功能突发失效。

修复步骤

  • 调整.env邮件配置
    打开项目根目录下的.env文件,替换原有邮件相关配置为以下内容,所有参数不要带多余空格、引号:
    MAIL_DRIVER=smtp
    MAIL_HOST=填写你使用的SMTP服务地址(如腾讯企业邮填smtp.exmail.qq.com、163邮箱填smtp.163.com)
    MAIL_PORT=465
    MAIL_USERNAME=完整发件邮箱账号
    MAIL_PASSWORD=邮箱对应的SMTP授权码(并非邮箱登录密码,需在邮箱后台单独开启SMTP服务获取)
    MAIL_ENCRYPTION=ssl
    MAIL_FROM_ADDRESS=完整发件邮箱账号
    MAIL_FROM_NAME=站点发件人显示名称
    
    不要使用25端口,目前国内云服务器25端口默认封禁,几乎无法申请解封;加密方式不要填tls或留空,必须指定为ssl对应465端口。
  • 清除项目配置缓存
    进入项目根目录,在命令行依次执行以下命令,清除Laravel缓存的旧配置:
    php artisan config:clear
    php artisan cache:clear
    
  • 强制指定TLS1.2版本(前两步完成后仍报错时操作)
    打开项目config/mail.php文件,找到smtp驱动对应的stream配置项,新增TLS版本强制指定参数,修改后内容如下:
    'stream' => [
        'ssl' => [
            'allow_self_signed' => true,
            'verify_peer' => false,
            'verify_peer_name' => false,
            'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
        ],
    ],
    
    修改完成后再次执行php artisan config:clear重载配置。
  • 连通性校验
    在服务器命令行执行telnet命令测试SMTP端口连通性,确认服务器出站465端口未被防火墙、安全组拦截:
    telnet 你填写的SMTP服务地址 465
    
    连通正常时会返回SMTP服务的欢迎banner,此时触发邮件发送即可恢复正常。

常见踩坑提示:部分开发者会误以为是Laravel框架版本问题尝试升级框架,完全没有必要,按上述步骤调整配置即可兼容,升级框架反而可能引入更多兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:15:32