You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

postsrsd转发DMARC域名邮件遇退信问题求助

Postfix+postsrsd转发DMARC域名邮件至Outlook退信的解决方案

问题背景

  • 邮件路由路径:info@sender.com → 运行MailScanner的垃圾邮件服务器spamfilter.mydomain.com → 目标邮件服务器mail.mydomain.com,邮件先存入info@receiver.com本地邮箱,需转发时通过postsrsd发送至forwarded@outlook.com
  • Postfix main.cf中postsrsd相关配置:
sender_canonical_maps = tcp:127.0.0.1:10001
sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:127.0.0.1:10002
recipient_canonical_classes = envelope_recipient
  • postsrsd版本:1.4
  • Outlook退信错误日志:

dsn=5.7.509, status=bounced (host hotmail-com.olc.protection.outlook.com[52.101.11.20] said: 550 5.7.509 Access denied, sending domain [LINKEDIN.COM] does not pass DMARC verification and has a DMARC policy of reject.)

  • 核心现象:自身邮件服务器IP的SPF验证通过,但原始发件方的DKIM、DMARC验证失败;邮件转发至Gmail正常,转发至Outlook退信

问题根源

Outlook的DMARC校验逻辑比Gmail严格:
使用postsrsd仅重写了信封发件人(Envelope Sender),但邮件头部的From地址仍保留原始发件域名(如LINKEDIN.COM)。Outlook会对头部From对应的域名执行DMARC校验,由于你的服务器没有该域名的DKIM签名权限,DKIM验证失败,触发该域名的reject级DMARC策略,直接拒收邮件。

Gmail对转发场景的DMARC校验有豁免逻辑,因此能正常投递。

可行解决方案

方案1:配置ARC签名(推荐,标准解决方案)

ARC(Authenticated Received Chain)是专为转发邮件设计的身份验证标准,可让ESP信任经过合法转发的邮件,无需修改原始发件人信息:

  1. 安装并配置opendkim(需支持ARC模块):
    • 在opendkim.conf中添加以下配置:
      ARCSign yes
      ARCSeal yes
      ARCAuthenticationResults yes
      
    • 为你的域名mydomain.com生成ARC密钥对,在DNS中添加对应的TXT记录(格式类似DKIM记录,前缀为arc._domainkey)
  2. 确保Postfix已集成opendkim,在main.cf中添加:
    milter_default_action = accept
    milter_protocol = 6
    smtpd_milters = inet:127.0.0.1:8891
    non_smtpd_milters = inet:127.0.0.1:8891
    
  3. 保持现有postsrsd配置(仅重写信封发件人),重启Postfix和opendkim服务
  4. 测试转发,查看邮件头部是否包含ARC-Seal、ARC-Message-Signature、ARC-Authentication-Results字段

方案2:修改postsrsd配置重写头部From(临时应急,不推荐)

修改Postfix配置,让sender_canonical同时作用于头部发件人:

sender_canonical_classes = envelope_sender, header_sender

此方案会将邮件头部的From地址替换为SRS重写后的地址,用户无法直接看到原始发件人,体验较差,仅适合临时测试。

方案3:使用支持DMARC豁免的中继服务

选择支持DKIM传递或DMARC豁免的邮件中继服务,将转发请求交由中继服务处理。这类服务凭借自身信誉和配置,能让ESP接受转发后的邮件,无需自行处理DKIM/DMARC校验问题。

方案4:调整转发逻辑为虚拟别名映射

如果是邮箱级别的转发需求,可在Postfix中使用virtual_alias_maps直接配置转发规则,替代用户邮箱的自动转发:

  1. 在main.cf中配置:
    virtual_alias_maps = hash:/etc/postfix/virtual
    
  2. 在/etc/postfix/virtual中添加映射:
    info@receiver.com forwarded@outlook.com
    
  3. 执行postmap /etc/postfix/virtual并重启Postfix
  4. 配合ARC签名使用,确保转发邮件的身份验证链完整

关键注意事项

  • 禁止伪造原始发件域名的DKIM签名,这会触发ESP的反垃圾邮件策略,导致邮件被永久拉黑
  • 对于DMARC策略为reject的域名,必须通过ARC签名或合法中继的方式完成身份验证,无其他捷径
  • 可使用opendmarc-test工具提前验证邮件的DMARC/ARC校验结果

内容的提问来源于stack exchange,提问作者R.Berger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:23:15