GoDaddy主机使用PHPMailer发送邮件成功但未进入Gmail收件箱
GoDaddy主机PHPMailer发邮件到Gmail收不到的解决办法
直接给你梳理问题和对应的解决步骤,都是针对GoDaddy近期配置变化和Gmail反垃圾规则来的:
一、修改PHPMailer代码关键参数
你的代码里几个参数不符合当前GoDaddy的要求,直接调整:
- 开启SMTP认证:你填了cPanel邮箱的账号密码,但
SMTPAuth设为false等于白填,GoDaddy现在本地SMTP也需要认证,改成:$mail->SMTPAuth = true; - 启用加密并更换端口:端口25现在基本被多数服务商限制或标记为不安全,Gmail也拒收未加密邮件,改成TLS加密+587端口:
$mail->SMTPSecure = 'tls'; $mail->Port = 587; - 指定正确的SMTP主机:别用
localhost,直接用GoDaddy为你的域名分配的邮件服务器,比如mail.yourdomain.com(把yourdomain换成你的实际域名):$mail->Host = "mail.yourdomain.com"; - 完善发件人信息:只填邮箱会触发Gmail垃圾检测,加上发件人名称:
$mail->SetFrom("my_mail@yourdomain.com", "你的网站名称/发件人姓名");
修改后的完整代码示例:
$mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->Host = "mail.yourdomain.com"; // 替换为你的域名邮件服务器 $mail->Port = 587; $mail->IsHTML(true); $mail->CharSet = 'UTF-8'; $mail->SMTPDebug = 3; $mail->Username = "my_mail@yourdomain.com"; // 填完整的cPanel邮箱地址 $mail->Password = "my_pass";// cPanel邮箱的密码 $mail->SetFrom("my_mail@yourdomain.com", "你的发件人名称"); $mail->Subject = "subject"; $mail->Body = $content; $mail->AddAddress($email); if(!$mail->Send()){ echo $mail->ErrorInfo; }else{ echo "sent"; }
二、配置GoDaddy邮件认证(关键!)
光改代码还不够,GoDaddy主机的邮件必须通过DKIM/SPF认证,否则Gmail直接丢垃圾或拒收:
- 登录cPanel,找到电子邮件板块的DKIM管理器,选中你的域名,点击“启用”,系统会自动生成DKIM记录并配置到DNS里
- 同样在cPanel里找SPF记录,确保你的域名SPF记录包含
include:secureserver.net(GoDaddy邮件服务器标识),如果没有就添加,最终SPF记录类似:v=spf1 a mx include:secureserver.net ~all - 可选配置DMARC记录:在DNS里添加一条TXT记录,主机名填
_dmarc,内容填v=DMARC1; p=none; sp=none; rua=mailto:dmarc@yourdomain.com;,用来监控邮件认证状态
三、Gmail端排查
- 先检查垃圾邮件文件夹,大概率被归类到这里了
- 查看Gmail里的已阻止的发件人列表,确认没被误阻止
- 打开收到的邮件(哪怕在垃圾里),点击右上角三个点→显示原始内容,查看
DKIM-Signature和SPF字段的状态,确认是否显示“pass”
内容的提问来源于stack exchange,提问作者Yash Singh
相关产品推荐
相关产品推荐

