通常我们为了防止自己域名邮箱被伪造,会通过配置SPF记录来限制域名邮箱可以外发的IP网段。SPF相关配置说明可以参考:https://support.google.com/a/answer/33786?hl=zh-Hans例如我个人的邮箱是托管在QQ企业邮箱,因此就设置了相关的SPF记录

SPF记录相对来说只是限制了外发邮件的IP段,但是当你的邮箱被人伪造后自己实际并不知道(虽然绝大部分邮件服务器都会把SPF检查不通过的邮件放入垃圾箱)。DMARC记录相对来说是SPF记录的一种加强,相关的说明见 https://dmarc.org/overview/ 。以个人邮箱的DMARC记录为例v:版本(纯文本;必要的)值为“DMARC1”,必须作为第一个标签。p:要求的邮件接收者策略(纯文本;必要的)表明接收者根据域名所有者的要求制定的策略。none:域名所有者要求不采取特定措施quarantine:域名所有者希望邮件接收者将DMARC验证失败的邮件标记为可疑的。reject:域名所有者希望邮件接收者将DMARC验证失败的邮件拒绝。rua:发送综合反馈的邮件地址(逗号分隔的DMARC URI纯文本列表;可选的)ruf:发送消息详细故障信息的邮件地址(逗号分隔的DMARC URI纯文本列表;可选的)sp:要求邮件接收者对所有子域使用的策略(纯文本;可选的),若缺省,则“p”指定的策略将应用到该域名和子域中。adkim:(纯文本;可选的;默认为“r”)表明域名所有者要求使用严格的或者宽松的DKIM身份校验模式,有效值如下:r: relaxed modes: strict modeaspf:(纯文本;可选的;默认为“r”)表明域名所有者要求使用严格的或者宽松的SPF身份校验模式,有效值如下:r: relaxed modes: strict modefo:故障报告选项(纯文本;可选的;默认为0),以冒号分隔的列表,如果没有指定“ruf”,那么该标签的内容将被忽略。0:如果所有身份验证机制都不能产生“pass”结果,那么生成一份DMARC故障报告;1:如果任一身份验证机制产生“pass”以外的结果,那么生成一份DMARC故障报告;d:如果消息的签名验证失败,那么生成一份DKIM故障报告;s:如果消息的SPF验证失败,那么生成一份SPF故障报告。那么我这个dmarc的作用就是,告诉收件服务器将dmarc检查失败的邮件标记为可疑,并将综合反馈邮件和详细的信息都发送到我的个人邮箱。

当配置了dmarc记录后,各邮件服务器会加强对邮件源的检查从邮件头,可以看到gmail有对dmarc记录做校验。

