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

Uncaught Swift_TransportException 报错无法解决,求排查修复方案

问题原因

你遇到的Swift_TransportException报错核心是Gmail的安全策略限制导致,次要原因包含配置错误、端口封禁等:

  • 2022年5月30日起Google已全面禁止第三方应用直接使用Gmail账号密码登录SMTP服务,你直接填写账号密码的调用方式已经被官方拦截
  • 你的代码存在发件人配置错误,触发Gmail的发件人伪造校验规则
  • 极小概率为你的服务器封禁了Gmail SMTP对应的465/587端口

补充说明:AuthHandler.php第191行只是SwiftMailer统一抛出传输类异常的通用入口,本身没有问题,不需要修改该行代码。

修复步骤

  • 第一步:替换Gmail登录凭证为应用专用密码
    先为你的Gmail账号开启两步验证,之后在账号安全设置中生成一个16位的应用专用密码,将setPassword()参数替换为该16位密码即可,不要保留空格。
  • 第二步:修正发件人配置错误
    你现有代码的发件人设置为用户注册邮箱,会被Gmail判定为伪造发件人直接拦截,修改对应代码即可:
    // 错误写法
    ->setFrom([$email => $firstname . ' ' . $lastname])
    // 修正为和setUsername中一致的你的Gmail邮箱
    ->setFrom(['你的Gmail邮箱' => '你的站点名称'])
    
    若你的服务器封禁了SSL的465端口,可尝试替换为TLS配置:
    $transport = (new Swift_SmtpTransport('smtp.gmail.com', 587, 'tls'))
    
  • 第三步:排查服务器端口连通性
    登录你的服务器执行命令测试端口连通性:
    telnet smtp.gmail.com 465
    若连接超时,联系你的服务器服务商放开对应端口即可。
  • 第四步:升级依赖版本(可选)
    若你使用的是6.0版本以下的SwiftMailer,存在对新版Gmail SMTP协议的兼容问题,升级到最新稳定版即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:45:03