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

Laravel发送邮件报错:STARTTLS连接失败,证书验证错误

解决STARTTLS连接时的SSL证书验证失败问题

遇到这个错误,核心是邮件服务器的SSL证书无法被PHP环境正常验证,仅添加'auth_mode' => null, 'verify_peer' => false未必能解决,试试以下针对性方案:

  • 补全服务器证书链:很多时候是服务器只返回了叶证书,缺少中间证书导致验证断裂。去邮件服务器的证书管理页面下载完整证书链(合并根证书、中间证书、叶证书为一个.pem文件),然后在邮件配置中指定:

    'cafile' => '/绝对路径/到/fullchain.pem'
    
  • 修正PHP的CA证书配置:检查php.ini文件,确保openssl.cafile指向系统信任的CA证书集合:

    • Linux系统一般是/etc/ssl/certs/ca-certificates.crt
    • Windows可从curl官网下载cacert.pem,设置openssl.cafile = "C:\指定路径\cacert.pem"
      修改后重启PHP服务生效。
  • 指定兼容的TLS版本:部分老旧邮件服务器不支持最新TLS协议,强制指定TLSv1.2或TLSv1.3尝试:

    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
    ]
    
  • 完善跳过验证的配置:若仅为临时测试需要关闭验证,除verify_peer外还需添加verify_peer_name:

    'verify_peer' => false,
    'verify_peer_name' => false
    

    注意:此操作会关闭证书校验,存在安全风险,仅用于排查问题,生产环境禁止使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:10:57