最近,我的邮件服务器拒绝了一些来信,原因是 DMARC 检查失败。仔细检查后,我注意到日志提到拒绝是因为 OpenDMARC 应用了我的策略而不是发件人的策略。以下是失败的 Exchange 发送邮件的示例(略作删节[email protected]
)[email protected]
:
postfix/smtpd[19698]: connect from mail-eopbgr80052.outbound.protection.outlook.com[40.107.8.52]
postfix/smtpd[19698]: Anonymous TLS connection established from mail-eopbgr80052.outbound.protection.outlook.com[40.107.8.52]: TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)
policyd-spf[19706]: Pass; identity=helo; client-ip=40.107.8.52; helo=eur04-vi1-obe.outbound.protection.outlook.com; [email protected]; [email protected]
policyd-spf[19706]: Pass; identity=mailfrom; client-ip=40.107.8.52; helo=eur04-vi1-obe.outbound.protection.outlook.com; [email protected]; [email protected]
postfix/smtpd[19698]: 3578F66A0006: client=mail-eopbgr80052.outbound.protection.outlook.com[40.107.8.52]
postfix/cleanup[19707]: 3578F66A0006: message-id=<AM5PR0201MB22602B5B4998B49514A63C76B2540@AM5PR0201MB2260.eurprd02.prod.outlook.com>
opendkim[598]: 3578F66A0006: mail-eopbgr80052.outbound.protection.outlook.com [40.107.8.52] not internal
opendkim[598]: 3578F66A0006: not authenticated
opendkim[598]: 3578F66A0006: failed to parse Authentication-Results: header field
opendkim[598]: 3578F66A0006: DKIM verification successful
opendkim[598]: 3578F66A0006: s=selector1-random.tld d=random.onmicrosoft.com SSL
opendmarc[605]: implicit authentication service: mail.mydomain.tld
opendmarc[605]: 3578F66A0006 ignoring Authentication-Results at 1 from vps.mydomain.tld
opendmarc[605]: 3578F66A0006: mydomain.tld fail
postfix/cleanup[19707]: 3578F66A0006: milter-reject: END-OF-MESSAGE from mail-eopbgr80052.outbound.protection.outlook.com[40.107.8.52]: 5.7.1 rejected by DMARC policy for mydomain.tld; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<EUR04-VI1-obe.outbound.protection.outlook.com>
postfix/smtpd[19698]: disconnect from mail-eopbgr80052.outbound.protection.outlook.com[40.107.8.52] ehlo=2 starttls=1 mail=1 rcpt=1 data=0/1 quit=1 commands=6/7
注意倒数第三行。在此特定情况下,发件人没有自己的 DMARC 策略。其他电子邮件发送者[email protected]
通常会顺利到达。
在过去的一年中,它在转发我的工作账户时也失败了一次,在转发我的大学账户时也失败了一次。
这种行为可能是由任一端的某种(错误)配置引起的,还是一个错误?
我正在运行 OpenDMARC 版本 1.3.1。使用以下配置(为清晰起见已修剪):
## AuthservID (string)
## defaults to MTA name
#
AuthservID mail.mydomain.tld
PidFile /var/run/opendmarc.pid
## RejectFailures { true | false }
## default "false"
##
RejectFailures true
Syslog true
UserID opendmarc:opendmarc
PublicSuffixList /usr/share/publicsuffix/
IgnoreAuthenticatedClients true
答案1
AuthservID
为所有本地过滤器配置匹配。
或者:将所有受信任的 ID 添加TrustedAuthServIDs
到开放的马克。通常只需删除该行就足够了,因为它默认为 MTA 名称opendkim和开放的马克。
AuthservID mail.mydomain.tld
ignoring Authentication-Results at 1 from vps.mydomain.tld
开放的马克在评估消息时仅考虑可信的结果,因此才有ignoring
日志行。可信结果通过标识符进行标识通常等于postconf myhostname
。
在这种特定情况下,发件人没有自己的 DMARC 策略。
但尽管如此,开放的马克正在应用您的接收者策略 - 因为您明确告诉它这样做。您的策略是拒绝失败(RejectFailures true
)。此决定独立于您的DMARC发送邮件的策略(如 DNS 中定义)。默认只添加标头,而不管结果如何DMARC评估。