自部署邮箱接收不到某些邮件的原因排查
AI摘要Kimi Chat
用上自部署邮箱后,我就将一些社交平台的绑定邮箱换成了自己的新邮箱。然而某些平台的验证邮件却始终无法收到——即使在垃圾邮件箱。
查看日志后发现以下内容:
Mar 24 03:13:07 mail postfix/smtpd[27111]: connect from spruce-goose-al.twitter.com[199.59.150.81]
Mar 24 03:13:07 mail postfix/smtpd[27111]: Anonymous TLS connection established from spruce-goose-al.twitter.com[199.59.150.81]: TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)
Mar 24 03:13:08 mail postfix/smtpd[27111]: CD556EB3A9: client=spruce-goose-al.twitter.com[199.59.150.81]
Mar 24 03:13:09 mail opendkim[695]: CD556EB3A9: spruce-goose-al.twitter.com [199.59.150.81] not internal
Mar 24 03:13:14 mail postfix/cleanup[27120]: CD556EB3A9: milter-reject: END-OF-MESSAGE from spruce-goose-al.twitter.com[199.59.150.81]: 5.7.1 rejected by DMARC policy for x.com; from=<n08055319d2-77aa9b8824bc4a3a-me===mail.fyz666.xyz@bounce.x.com> to=<me@mail.fyz666.xyz> proto=ESMTP helo=<spruce-goose-al.x.com>
Mar 24 03:13:19 mail postfix/smtpd[27111]: disconnect from spruce-goose-al.twitter.com[199.59.150.81] ehlo=2 starttls=1 mail=1 rcpt=1 data=0/1 quit=1 commands=6/7
发现这封来自twitter的邮件似乎因为DMARC验证失败而被reject了:rejected by DMARC policy for x.com;
看来应该是twitter的锅。考虑到之前DMARC的DNS解析内容是v=DMARC1; p=quarantine;
为了能正常接收到邮件,根据这个文档的解释,我尝试了一下将这里p的值改成了none
。
过了一段时间等DNS缓存刷新后再次进行尝试,发现可以正常收到邮件了。
- Oray
Mar 25 22:44:09 mail policyd-spf[507719]: prepend Received-SPF: None (mailfrom) identity=mailfrom; client-ip=140.205.208.10; helo=out208-10.dm.aliyun.com; envelope-from=no-reply@news.oray.cn; receiver=<UNKNOWN>
Mar 25 22:44:09 mail opendmarc[703]: 44B5BEB3AD: news.oray.cn none
Mar 25 22:44:09 mail postfix/qmgr[162952]: 44B5BEB3AD: from=<no-reply@news.oray.cn>, size=3073, nrcpt=1 (queue active)
Mar 25 22:44:09 mail amavis[162976]: (162976-16) Blocked BAD-HEADER-0 {BouncedInbound,Quarantined}, [140.205.208.10]:45205 [140.205.208.10] <no-reply@news.oray.cn> -> <me@mail.fyz666.xyz>, quarantine: V/badh-V4on_mWyAIEY, Queue-ID: 44B5BEB3AD, mail_id: V4on_mWyAIEY, Hits: -, size: 2953, 72 ms
Mar 25 22:44:15 mail postfix/smtp[507949]: EB1C6EB3EA: to=<no-reply@news.oray.cn>, relay=mx100.olivemail.net[119.38.129.76]:25, delay=5.3, delays=0.01/0.01/2/3.2, dsn=5.0.0, status=bounced (host mx100.olivemail.net[119.38.129.76] said: 550 User not found: no-reply@news.oray.cn (in reply to RCPT TO command))
好像是Amavis把它拦了。Amavis是一个开源的电子邮件内容过滤器,这里的日志提到了BAD-HEADER-0,应该是邮件头部之类的问题。查到这个issue,为了解决这个问题,可以直接将这个头部过滤策略去掉。
新建docker-data/dms/config/amavis.cf
文件,写入下面内容:
$final_bad_header_destiny = D_PASS;
$bad_header_quarantine_to = undef;
然后重启容器即可。
注意,重启docker-mailserver不能使用docker restart
命令,而必须先docker compose down
再docker compose up -d
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逸风亭!
评论
TwikooGiscus