事件经过
现象
外部用户使用工具发邮件到公司内部一个Exchange通讯组,邮件收不到。该通讯组成员嵌套了一个安全组,安全组内包含了实际的收件人。当时将通讯组+安全组<允许外部用户发送到该组>功能启用,并且调整<可发送到该组>的ACL清单,添加发件人地址aaa.bbb@contoso.com。仍无法收到邮件,邮件网关不存在记录。
转折点
通过global用户提供的收件邮件头发现,邮件头内5321和5322From地址不同。将5321地址aaabbb@contoso.com加入到<可发送到该组>的ACL清单内后,邮件正常收到了。
解决方案
- 调整通讯组+安全组<可发送到该组>的ACL清单,5321和5322地址都做了添加。
- 通讯组+安全组<允许外部用户发送到该组>功能启用。
聊聊5321和5322
Internet Engineering Task Force(IETF)创建了两套RFC标准,同时应用到现在的邮件传递,即RFC5321和RFC5322。RFC5321 cover了邮件端到端传输协议,RFC5322 cover了邮件内容的格式,也就是说5321的信息用作邮件路由传递,不直接显示给终端用户,5322的信息会在邮件客户端中直接显示给用户。另外一方面,SPF验证的是5321地址,DKIM验证的是5322地址。对于邮件头内,个人觉得5321就是Return-Path地址,5322是From地址。