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

XAMPP服务器邮件发送失败求助:已配置必要参数仍无法使用

解决XAMPP配置Gmail发送邮件失败的问题

嘿,我太懂你这种明明按教程改了所有配置,邮件却死活发不出去的崩溃感了!结合你已经完成的操作,咱们来揪几个容易被忽略的关键问题,一步步排查:

1. 补上Sendmail.ini里的核心认证字段

你提到配置了sendmail的基础项,但大概率漏了账号认证的关键参数——这是Gmail SMTP必须的!打开C:\xampp\sendmail\sendmail.ini,把[sendmail]段补全成这样:

[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls  ; 587端口对应TLS协议,必须加这个!
auth_username=shail.gandhi132@gmail.com
auth_password=你的专用密码(看下面的说明)
force_sender=shail.gandhi132@gmail.com
error_logfile=error.log
debug_logfile=debug.log

2. 搞定Gmail的账号权限(重中之重!)

谷歌现在对第三方应用登录管得很严,直接用原密码大概率会失败:

  • 如果你的谷歌账号开了两步验证(2FA):绝对不能用原密码,要去谷歌账号后台生成一个应用专用密码(步骤:账号设置 → 安全 → 应用专用密码 → 生成后复制到上面的auth_password里)
  • 如果没开2FA:需要去谷歌账号设置里开启「允许不太安全的应用访问」(不过这个选项现在部分地区已停用,优先推荐用应用专用密码)

3. 必须重启Apache服务

改完php.ini和sendmail.ini后,一定要去XAMPP控制面板里重启Apache!不重启的话,新配置根本不会生效,这是很多人踩过的坑。

4. 查看日志找具体错误

你已经配置了error.log和debug.log,去C:\xampp\sendmail目录下打开这两个文件,里面会写清楚失败原因:

  • 如果看到authentication failed:就是账号密码/权限的问题
  • 如果看到connection timed out:可能是防火墙拦截或者网络问题
  • 如果看到SSL error:检查smtp_ssl配置是否正确

5. 用简单脚本测试代码没问题

写个极简的PHP测试脚本,放到XAMPP的htdocs目录里,访问它确认代码逻辑没问题:

<?php
$to = "你的测试收件邮箱@xxx.com";
$subject = "XAMPP邮件测试";
$message = "终于能发邮件啦!";
$headers = "From: shail.gandhi132@gmail.com\r\n";
$headers .= "Content-type: text/plain; charset=UTF-8\r\n";

if(mail($to, $subject, $message, $headers)){
    echo "✅ 邮件发送成功!";
} else {
    echo "❌ 邮件发送失败,去看sendmail日志找原因!";
}
?>

6. 检查防火墙/杀毒软件拦截

本地防火墙或杀毒软件可能会阻止sendmail.exe连接到Gmail的SMTP服务器,试着临时关闭它们再测试,如果能发出去,就把C:\xampp\sendmail\sendmail.exe加入防火墙的白名单。

先从前面两点(认证字段+Gmail权限)开始排查,这几乎是90%的人遇到的问题!

内容的提问来源于stack exchange,提问作者S. Gandhi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:32:01