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

PHPMailer连接smtp.gmail.com失败问题求助

解决PHPMailer连接Gmail SMTP超时(错误10060)的方案

核心问题定位

你的错误提示是SMTP连接超时(SMTP code:10060),主要原因是SMTP端口与加密配置不匹配,或网络/环境限制导致无法连接Gmail服务器。

分步解决方案

1. 修正SMTP端口与加密设置

Gmail的SMTP端口和加密有明确对应关系,你的代码中SMTPSecure='tls'却使用Port=25,这是错误配置(25端口多被ISP封禁,Gmail官方推荐使用587或465端口):

  • TLS加密(STARTTLS)对应端口587
  • SSL加密对应端口465

修改代码中的服务器配置段:

//Server settings
$mail->isSMTP();
$mail->Host       = 'smtp.gmail.com';
$mail->SMTPAuth   = true;
$mail->Username   = 'example@gmail.com';
$mail->Password   = '你的应用密码';
// 推荐方案:使用STARTTLS+587
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port       = 587;
// 备选方案:使用SSL+465
// $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
// $mail->Port       = 465;

2. 验证PHP OpenSSL扩展启用

加密连接依赖OpenSSL扩展,检查php.ini文件,确保以下行未被注释:

extension=openssl

修改后重启PHP服务(如Apache/Nginx或PHP-FPM)。

3. 测试网络连通性

在服务器/本地终端执行以下命令,测试是否能连接Gmail SMTP服务器:

# 测试587端口连通性
telnet smtp.gmail.com 587
# 或使用nc命令
nc -zv smtp.gmail.com 587

如果无法连接,说明:

  • 本地/服务器防火墙封禁了587/465端口,需在防火墙规则中放行
  • 你的ISP封禁了SMTP端口,可尝试更换网络(如手机热点)测试,或联系ISP解除限制

4. 确认Gmail账号配置

  • 必须开启两步验证才能生成有效的应用密码(未开启两步验证则无法使用应用密码功能)
  • 确保应用密码是针对"其他(自定义名称)"生成的,输入时无空格或拼写错误
  • 检查Gmail账号是否有异常登录记录,避免账号被临时限制

5. 开启SMTP调试排查细节

在代码中添加调试模式,获取详细连接日志,帮助定位深层问题:

// 在Server settings段添加
$mail->SMTPDebug = SMTP::DEBUG_SERVER; // 输出完整SMTP交互日志

执行脚本后,根据日志信息进一步排查(如握手失败、认证错误等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:59:57