Gmail SMTP连接本地正常但服务器端超时失败求助
排查Chilkat连接Gmail SMTP超时问题
问题概述
本地环境使用Chilkat库发送邮件正常,但搭载Plex的Linux生产服务器无法连接Gmail SMTP服务器,465(SSL)和587(TLS)端口均出现超时错误,已确认服务器端口开放。
排查步骤
1. 验证基础网络连通性
- 在生产服务器上执行端口连通测试:
如果测试失败,说明出站流量被防火墙/安全组拦截,需检查服务器本地防火墙(如# 测试465端口 nc -zv smtp.gmail.com 465 # 测试587端口 nc -zv smtp.gmail.com 587ufw status、iptables -L)或云服务商的出站规则,确保允许访问Gmail SMTP的对应端口。 - 验证DNS解析:
确认解析到的IP地址正常(如日志中的172.253.115.108属于Google IP段),若解析异常需检查服务器DNS配置。nslookup smtp.gmail.com
2. 修正Gmail SMTP配置
- 必填账号信息:代码中未设置SMTP用户名和密码,这是核心问题。Gmail SMTP需要身份验证,需添加:
$smtp->put_SmtpUsername("your-gmail-address@gmail.com"); $smtp->put_SmtpPassword("your-app-password-or-password");- 若账号开启了2FA,必须使用App密码(在Google账号安全设置中生成);
- 若未开启2FA,需开启“不太安全的应用访问”(仅旧账号支持,新账号建议用App密码)。
- 端口对应配置:
- 465端口(隐式SSL):保持
put_SmtpSsl(true); - 587端口(TLS):需修改为:
$smtp->put_SmtpPort(587); $smtp->put_SmtpSsl(false); $smtp->put_StartTLS(true);
- 465端口(隐式SSL):保持
3. 更新Chilkat库与系统证书
- 升级Chilkat版本:当前使用的9.5.0.91版本较旧,可能不支持Gmail要求的TLS 1.2+协议,建议升级到最新版Chilkat库,确保TLS版本兼容性。
- 检查系统CA证书:Linux系统缺少根证书会导致SSL验证失败,执行以下命令安装/更新证书:
# Debian/Ubuntu apt update && apt install ca-certificates # CentOS/RHEL yum install ca-certificates
4. 排查Plex对网络的影响
- 检查Plex的网络设置,确认其未修改系统防火墙规则或占用SMTP相关端口;
- 查看系统进程的网络占用情况,确认无异常进程拦截流量:
ss -tulpn
内容的提问来源于stack exchange,提问作者SalmaBegum
相关产品推荐
相关产品推荐

