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

网站调用smtp.gmail.com发邮件失败,报错SMTP connect() failed

解决Gmail SMTP连接失败(SMTP connect() failed)的方案

问题背景

网站使用PHPMailer通过smtp.gmail.com发送邮件,此前正常运行数月,现出现报错:Error sending message: SMTP connect() failed。主机服务商已通过telnet测试确认服务器可正常连接smtp.gmail.com的587端口,排除网络层面问题。

有效解决方案

  • 启用TLS加密配置
    Gmail的587端口要求使用STARTTLS加密,原代码未配置此项,需添加:

    $mail->SMTPSecure = 'tls';
    

    若尝试465端口(SSL协议),则配置为:

    $mail->Port = 465;
    $mail->SMTPSecure = 'ssl';
    
  • 检查Gmail账户安全设置

    • 若账户开启了两步验证(2FA),必须使用应用专用密码替代原账户密码登录SMTP,原密码会直接失效。
    • 登录Google账户安全页面,检查是否存在可疑登录记录导致SMTP访问被临时封锁,需手动解除限制。
    • 注意:Gmail已默认关闭“不太安全的应用访问”,非2FA账户需启用该选项(仅临时方案,优先推荐使用应用密码)。
  • 验证账户与密码正确性
    确认Username为完整的邮箱地址(admin@fanmail.biz),若为Google Workspace账户,需确保域名已完成Google验证且未被限制服务。应用密码需准确复制,避免多余空格或字符错误。

  • 更新PHPMailer至最新版本
    旧版本PHPMailer可能存在TLS协议兼容性问题,通过Composer更新:

    composer require phpmailer/phpmailer
    
  • 开启调试模式排查细节
    添加调试代码获取连接过程的详细日志,定位具体失败环节:

    $mail->SMTPDebug = 2; // 输出详细调试信息,排查完成后建议关闭
    
  • 检查PHP环境依赖
    确认PHP已启用openssl扩展(Gmail SMTP依赖SSL/TLS加密),可通过phpinfo()查看扩展状态;同时检查allow_url_fopen是否开启,部分环境下会影响证书验证。

内容的提问来源于stack exchange,提问作者Jean-Pierre Lolivier

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:56:10