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

Windows Server 2012中PHP Sendmail连接超时问题求助

解决Windows Server 2012 XAMPP中Sendmail连接Gmail SMTP超时问题

核心排查与修复步骤

1. 校验Sendmail配置文件

打开XAMPP下Sendmail目录的sendmail.ini,确认以下关键配置无误:

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls
auth_username=你的Gmail邮箱地址
auth_password=你的Gmail应用专用密码

注意:Gmail目前强制要求使用应用专用密码,若账号开启两步验证,需在Google账号后台生成对应专用密码;未开启两步验证的账号,需先启用"不太安全的应用访问"(若该选项仍可用),优先推荐使用应用专用密码。

2. 测试服务器到Gmail SMTP的网络连通性

在Windows Server 2012的命令提示符(CMD)中执行命令,验证端口连通性:

telnet smtp.gmail.com 587
  • 若连接失败:说明服务器所在网络(如企业内网、机房)可能屏蔽了587端口,或出站流量被路由规则限制,需联系网络管理员确认。
  • 若连接成功:创建简单PHP测试脚本test_mail.php验证邮件发送逻辑:
<?php
$to = '你的测试邮箱地址';
$subject = '服务器邮件测试';
$message = '这是来自Windows Server的测试邮件';
$headers = 'From: 你的Gmail邮箱' . "\r\n" .
           'Reply-To: 你的Gmail邮箱' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

if(mail($to, $subject, $message, $headers)) {
    echo '邮件发送成功';
} else {
    echo '邮件发送失败';
}
?>

运行脚本后查看Sendmail目录下的error.log,定位具体错误。

3. 检查PHP.ini的邮件配置

打开XAMPP下PHP目录的php.ini,确认Sendmail路径配置正确:

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

确保路径与你的XAMPP实际安装路径一致,无拼写错误。

4. 排查Windows Server的隐性网络限制

  • 检查Windows Defender高级安全设置中的出站规则,确认没有阻止sendmail.exe访问网络的规则;
  • 若服务器使用代理,需在sendmail.ini中添加代理配置:
smtp_proxy=代理服务器地址
smtp_proxy_port=代理端口

5. 尝试更换SMTP端口/协议

若587端口持续超时,切换至465端口(SSL协议),修改sendmail.ini:

smtp_port=465
smtp_ssl=ssl

保存后重新测试邮件发送。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:35:27