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

PHPMailer出现SMTP connect() failed错误该如何修复?

PHPMailer SMTP连接失败修复方案

通用排查项

  • 开启调试日志定位问题:在服务配置区域添加代码 $mail->SMTPDebug = 3;,可输出完整的SMTP交互日志,快速定位是网络问题、认证问题还是端口封禁问题
  • 检查服务器端口连通性:多数云服务器、虚拟主机会默认封禁465/587 SMTP端口,登录服务器后执行命令 telnet smtp.gmail.com 465 测试连通性,连接失败需联系服务商解封端口,或更换邮箱服务商支持的其他端口
  • 确认PHP扩展依赖:确保PHP已开启openssl扩展,否则无法支持SMTPS/STARTTLS加密传输
  • 禁止使用账号登录密码作为SMTP密码:当前主流邮箱均不再支持直接用账号登录密码调用SMTP接口,必须使用专属应用密码

各邮箱专属配置

Gmail配置

  • 2022年起Gmail不再支持普通账号的密码登录SMTP,必须先开启账号的两步验证,之后生成应用专用密码,把生成的16位应用密码填入$mail->Password参数
  • 加密与端口对应规则:使用PHPMailer::ENCRYPTION_SMTPS加密方式对应465端口,使用PHPMailer::ENCRYPTION_STARTTLS加密方式对应587端口,二者不可混用
  • 若你的服务器部署在中国大陆地区,受网络限制无法直接连接Gmail SMTP服务器,建议更换为国内邮箱服务或部署在海外服务器
  • 正确配置片段参考:
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '你的Gmail完整地址';
$mail->Password = '你生成的16位应用专用密码';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 465;

Yahoo邮箱配置

  • 需先开启账号的两步验证,之后生成专属应用密码,不可使用账号登录密码
  • SMTP服务器地址为smtp.mail.yahoo.com
  • 加密与端口对应规则:SMTPS对应465端口,STARTTLS对应587端口
  • 发件人地址必须和你登录的Yahoo邮箱地址完全一致,否则会被判定为伪造发件人拦截

其他邮箱通用规则

  • 腾讯QQ邮箱、网易163邮箱等国内公共邮箱,均需要先开启账号两步验证,生成专属应用密码后调用SMTP接口
  • 企业邮箱优先参考服务商提供的SMTP配置文档,确认加密方式和端口对应关系,部分企业邮箱会使用自定义端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:57:02