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

使用SMTP发送邮件无法送达Gmail邮箱的原因排查

SMTP发送邮件至Gmail失败,网站邮箱正常接收的排查方案

问题描述

配置send.php通过SMTP发送邮件,收件人为网站邮箱info@my-site.com时能正常接收,但设置为Gmail邮箱email@gmail.com时无法收到。已生成Gmail应用密码,相关代码如下:

$mail->CharSet = "UTF-8";
$mail->SMTPAuth   = true;
$mail->SMTPKeepAlive = true;
$mail->isSendMail();
$mail->SMTPDebug = true;
$mail->Debugoutput = function ($str, $level) {
    $GLOBALS['status'][] = $str;
};

$mail->Host = 'smtp.gmail.com';
$mail->Username = 'username';
$mail->Password = 'password';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
// Set up email
$to = "email@gmail.com";
$body = "From: $name\n Email: $email\n Message:\n $message";
$headers = "From: $email\r\n";
$headers .= "Reply-To: $email\r\n";

// Send email
// Set the email details
$mail->setFrom($email, $name);
$mail->addAddress($to, 'Name');
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $body;

可能的原因及解决方案

1. 代码强制使用Sendmail而非SMTP

代码中调用了$mail->isSendMail();,这会强制使用服务器本地的sendmail命令发送邮件,直接忽略你配置的Gmail SMTP参数。网站邮箱能收到是因为本地服务器可直接投递到同域名邮箱系统,但Gmail会拦截这种无SMTP认证的投递请求。

解决方法:删除$mail->isSendMail();,替换为$mail->isSMTP();,确保使用配置的Gmail SMTP服务器发件。

2. 发件人地址与SMTP用户名不匹配

Gmail SMTP要求发件人地址(setFrom的参数)必须与SMTP用户名($mail->Username)完全一致,否则会触发反垃圾机制,邮件要么被拒绝,要么直接进入垃圾箱。

解决方法:将$mail->setFrom($email, $name);改为$mail->setFrom('你的Gmail用户名@gmail.com', $name);,同时用$mail->addReplyTo($email, $name);设置回复地址,保证用户回复能回到提交的邮箱。

3. HTML邮件格式错误

你设置了$mail->isHTML(true);,但$body使用纯文本换行符\n,Gmail对HTML格式邮件有严格要求,这种混合格式会被判定为垃圾邮件。

解决方法:将$body改为标准HTML格式,示例:

$body = "<p>From: $name</p><p>Email: $email</p><p>Message:</p><p>$message</p>";

4. Gmail反垃圾机制拦截

即使SMTP配置正确,以下情况仍可能导致邮件被拦截:

  • 邮件内容包含敏感词(如“免费”“促销”等)
  • 发送服务器IP被Gmail列入黑名单
  • 邮件被误判为垃圾邮件进入垃圾箱

解决方法:

  • 精简邮件内容,避免敏感词汇
  • 查看SMTP调试日志(已开启SMTPDebug = true),确认是否有明确错误提示(如“550 5.7.1 未授权”)
  • 检查Gmail垃圾箱,确认邮件是否被误分类

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 10:47:35