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

在XAMPP中使用PHP发送邮件问题:邮件未送达Gmail邮箱

解决从no-reply@{domain}发Gmail未送达的问题

下面是几个必查的方向和实操方法:

1. 先确认邮件去向

直接查看Gmail的垃圾邮件文件夹,很多新域名发送的邮件会被自动归类到这里。如果找到目标邮件,将发件人加入白名单即可。

2. 补全域名邮件验证记录(核心)

Gmail对发件域名的可信度校验严格,必须配置以下DNS记录:

  • SPF记录:新增一条TXT类型记录,内容设为 v=spf1 ip4:你的服务器公网IP mx -all,用于告知Gmail你的服务器是该域名的合法发件节点。
  • DKIM签名:在hMailServer后台找到DKIM配置项,生成密钥对,将公钥添加到域名的TXT记录中,格式示例:dkim._domainkey IN TXT "v=DKIM1; k=rsa; p=公钥内容"。
  • PTR反向解析:联系服务器提供商,将服务器IP反向解析到 mail.{domain},缺少该记录Gmail大概率会直接拒收邮件。

3. 排查hMailServer发送配置

  • 查看SMTP发送日志:打开hMailServer管理后台,进入「日志」→「SMTP日志」,里面会记录每封邮件的发送状态(如连接Gmail服务器被拒、报错信息等),这是最直接的排查线索。
  • 更换SMTP端口:多数服务商默认封禁25端口,可在php.ini中将smtp_port改为587,同时在hMailServer内开启587端口的SMTP服务。
  • 检查发送权限:确保hMailServer允许运行PHP的服务器本地IP发送邮件,未将该IP加入黑名单。

4. 优化PHP mail()参数

规范邮件头格式,降低被判定为垃圾邮件的概率:

$headers = [
    'From' => 'John Doe <no-reply@{domain}>',
    'Reply-To' => 'no-reply@{domain}',
    'X-Mailer' => 'PHP/' . phpversion()
];
mail('johndoe@gmail.com', 'Test Email', 'Hello World', $headers);

5. 验证MX记录有效性

用命令行工具(如nslookup)查询域名MX记录,确认mail.{domain}指向的IP正确,且DNS记录已生效(新记录通常需1-24小时同步)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:35:24