*@comcast.net邮箱收件人邮件进入垃圾文件夹问题排查求助
问题描述
日常向多名客户发送邮件时出现异常:所有使用*@comcast.net后缀邮箱的12位客户,收到的邮件均会自动进入垃圾文件夹。曾联系Comcast官方寻求技术支持,未获得有效协助。
当前使用的PHP发信脚本
function mailerExpressBlueHostUpdated(array $mailInputs){ require_once '../includes/phpmailer6.6/src/PHPMailer.php'; require_once '../includes/phpmailer6.6/src/SMTP.php'; $mail = new PHPMailer(); $mail->IsMail(); $mail->SetFrom('skipper@sailwbob.com'); $mail->IsHTML(true); $mail->addAddress($mailInputs['addAddress']); $mail->AddEmbeddedImage("../public/img/swb.jpg", "swb-image"); $mail->AddEmbeddedImage("../public/img/email-32.png", "swb-email"); $mail->AddEmbeddedImage("../public/img/phone-32.png", "swb-phone"); $body = $mailInputs['body'] ; $mail->isHTML(true); $mail->Subject = $mailInputs['subject'] ; $mail->Body = $body; if(!$mail->send()) { return 'Message could not be sent.' . 'Mailer Error: ' . $mail->ErrorInfo; }else{ return 'Message has been sent'; } $mail->ClearAddresses(); }
DNS健康检查告警信息
DMARC sailwbob.com DNS DMARC RUA / RUF domains Not valid. DMARC sailwbob.com DMARC Quarantine/Reject policy Not enabled. SMTP mail.sailwbob.com. 10.84 seconds - Bad on Transaction time. SMTP mail.sailwbob.com. Reverse DNS does not match SMTP Banner. DNS sailwbob.com SOA Expire Value is out of recommended range. DNS sailwbob.com SOA Refresh Value is out of recommended range.
排查与解决指导
所有问题按影响优先级从高到低处理:
1. 修复核心DNS与SMTP服务配置问题
Comcast作为美国本土老牌ISP,对发信源的身份合规校验、信誉评分规则非常严格,你当前告警里的SMTP、DMARC问题是直接导致进垃圾箱的核心原因:
- 修复反向解析不匹配问题:联系你的主机商BlueHost,为mail.sailwbob.com对应的服务器出口IP配置PTR反向解析记录,确保解析返回值和SMTP服务的Banner标识完全一致。反向解析不匹配的发信源,会直接被Comcast的反垃圾系统标记为可疑源,是权重最高的扣分项。
- 优化SMTP事务响应速度:当前SMTP事务耗时10.84秒,远高于2秒以内的正常阈值,慢响应会被判定为僵尸网络发信或非正规邮件服务。先检查主机SMTP服务负载、灰名单规则、出口网络连通性,把响应时间降到合理区间。
- 补全邮件身份校验记录:
- 先配置正确的SPF记录,将你实际用来发信的服务器IP、主机发信源全部加入SPF允许列表
- 在主机面板生成DKIM公私钥,将公钥配置到域名DNS解析中
- 修正DMARC记录:配置合法的RUA/RUF收件地址(例如dmarc@sailwbob.com)用于接收各大邮箱的发信反馈,初期策略设置为
p=none观测2-4周,确认所有合法发信都正常通过校验后,再逐步调整为p=quarantine,不要直接开启p=reject避免正常邮件被误拦。
- 修正SOA记录参数:联系域名DNS服务商,将SOA记录的Refresh值调整为3600秒、Expire值调整为1209600秒,符合RFC推荐范围,异常的SOA记录会被判定为域名配置不规范,降低发信信誉分。
2. 修正PHPMailer发信脚本配置
你当前的脚本存在多个会影响发信信誉的问题:
- 替换发信模式:不要使用
$mail->IsMail()调用PHP内置mail()函数发信,这种模式默认不会自动携带DKIM签名,也容易被主机SMTP服务标记为本地伪造发信。改成SMTP认证发信模式,参考配置如下:
$mail->isSMTP(); $mail->Host = 'mail.sailwbob.com'; $mail->SMTPAuth = true; $mail->Username = 'skipper@sailwbob.com'; $mail->Password = '你的邮箱账号实际密码'; $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->Port = 465; // 开启DKIM签名,参数和你DNS中配置的DKIM信息保持一致 $mail->DKIM_domain = 'sailwbob.com'; $mail->DKIM_private = '服务器上DKIM私钥的绝对路径'; $mail->DKIM_selector = 'default'; $mail->DKIM_passphrase = ''; $mail->DKIM_identity = $mail->From; // 补充纯文本版本邮件,避免纯HTML邮件被判定为垃圾邮件 $mail->AltBody = strip_tags($body);
- 修复逻辑bug:你当前在
send()方法执行后就return了结果,后续的$mail->ClearAddresses()永远不会执行,如果后续脚本循环调用该函数批量发信,会出现收件人地址累积的问题,将地址清空逻辑移到send判断之前即可。
3. 快速提升Comcast域发信信誉
- 联系已收到邮件的12位Comcast客户,请他们将
skipper@sailwbob.com加入个人邮箱的地址簿/白名单,Comcast会将用户个人联系人的发信权重提得很高,少量用户加白后就能快速提升整个发信域在Comcast系统的信誉。 - 发信内容避免出现典型垃圾邮件特征:不要夹带过多短链接、夸张营销类敏感词,嵌入的图片控制总大小不要超过1MB,HTML代码不要过度冗余。
内容的提问来源于stack exchange,提问作者DCR
相关产品推荐
相关产品推荐

