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

已配置php.ini与sendmail.ini,PHP mail函数仍无法发送邮件求助

解决PHP mail函数配合Gmail SMTP发送失败的问题

检查Gmail账户权限

  • 若你的Gmail账户开启了两步验证(2FA),绝对不能用原账户密码填在sendmail.ini的auth_password里,必须登录Gmail的「安全性」设置页面,生成应用专用密码替换该字段。
  • 若未开启2FA,需在Gmail安全性设置中开启「低安全性应用访问」(部分新账户可能已移除该选项,优先推荐用应用专用密码)。

补全sendmail.ini加密配置

587端口要求TLS加密,在sendmail.ini中添加以下两行:

smtp_ssl=tls
hostname=smtp.gmail.com

完善邮件头信息

PHP mail函数默认的邮件头可能因缺少必要标识被拒收,修改测试代码补充头信息:

<?php
$sub = "TEST";
$msg = "Sent";
$rec = "*******@gmail.com";
// 补充From和Reply-To头,需与sendmail.ini中的force_sender一致
$headers = "From: ******@gmail.com\r\n" .
           "Reply-To: ******@gmail.com\r\n" .
           "X-Mailer: PHP/" . phpversion();

if(mail($rec, $sub, $msg, $headers)){
    echo "email sent";
}else{
    echo "Error";
}
?>

查看日志定位问题

打开XAMPP的sendmail目录下的error.log和debug.log,里面会记录具体失败原因(比如认证失败、连接超时、加密错误等),根据日志针对性解决。

重启Apache服务

修改php.ini和sendmail.ini后,必须重启XAMPP的Apache服务,确保新配置生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:41:12