XAMPP版本是否会影响通过XAMPP发送PHP邮件?
XAMPP发信故障排查结论
版本影响说明
XAMPP版本本身极少直接触发邮件发送失败,仅两类特殊版本存在相关缺陷:
- 1.8.0之前的远古版本,内置sendmail组件存在TLS协议兼容性问题,无法适配当前谷歌SMTP的加密要求
- 非正式发布的测试版XAMPP,可能存在PHP mail函数的编译缺陷
你已经解决了原先端口25的连接报错,说明基础配置已经生效,基本可以排除版本导致的故障。
mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
无显性报错时发信失败的常见原因
- 加密协议与端口不匹配:谷歌SMTP要求587端口使用
STARTTLS加密、465端口使用SSL/TLS加密,需确认sendmail.ini中smtp_ssl参数与端口对应:587端口填tls,465端口填ssl,填写错误会导致SMTP握手失败且无明确报错。 - 应用专用密码失效:如果谷歌账号的两步验证曾经关闭过,之前生成的应用专用密码会自动作废,需要重新开启两步验证后生成新的专用密码填入配置。
- 发件人地址不一致:PHP代码中调用mail函数时填写的发件人地址,必须和生成应用专用密码的谷歌邮箱完全一致,不能使用邮箱别名、其他账号地址,否则会被谷歌SMTP直接拒收。
- 本地网络拦截:防火墙、杀毒软件可能会拦截本地程序对外的465/587端口出站请求,可临时关闭相关安全软件验证是否是拦截导致的故障。
- 组件权限不足:Windows环境下如果XAMPP安装在系统盘Program Files目录下,sendmail.exe可能因没有临时文件写入权限无法正常运行,可将XAMPP整体迁移到非系统盘根目录测试。
内容的提问来源于stack exchange,提问作者Kaynalyn Lindain
相关产品推荐
相关产品推荐

