Exchange 在将电子邮件转发到外部 Google Apps 帐户之前会对其进行修改。我希望找到一种方法来解决这个问题。
以下是更多细节:
使用 Exchange 2010 SP3 版本 14.3.123.4
Exchange 服务器正在将某些用户的电子邮件转发到 Google Apps 帐户(使用 AD 中的外部联系人)。Exchange 设置为将电子邮件放入用户的邮箱,并将副本转发到他们的 Google Apps 帐户。问题是,外部电子邮件(例如来自 @google.com 的电子邮件)在从 Exchange 转发后未通过 Google Apps 端的 DKIM 检查,因此被标记为垃圾邮件。我通过查看电子邮件来源并看到以下消息获得了此信息:
Authentication-Results: mx.google.com;
dkim=neutral (body hash did not verify) [email protected];
spf=pass (google.com: domain of [email protected] designates 1.1.1.1 as permitted sender) [email protected];
dmarc=fail (p=REJECT dis=NONE) header.from=example.com
- [电子邮件保护]
- 拥有 Exchange 邮箱和 Google 应用帐户的用户 - 1.1.1.1 - Exchange 服务器的外部 IP,包含在 SPF 记录中
- example.com - 已配置 dmarc 的外部公共域
直接电子邮件与转发电子邮件的测试和结果:
以下是两封电子邮件的示例。一封电子邮件发送到 Exchange 服务器用户的电子邮件地址,另一封电子邮件使用临时的 Google Apps 分配域别名直接发送到 Google Apps 电子邮件地址 ([电子邮件保护])。
发出的两封邮件的主题和正文完全相同。收到的两封邮件之间唯一的区别是 Exchange 转发的邮件修改了正文边界,字符集值现在在 UTF-8 周围加了引号。
直接发送至 Gmail ([电子邮件保护]):
Content-Type: multipart/alternative; boundary=001a1149a47ee5ea57053414b981
--001a1149a47ee5ea57053414b981
Content-Type: text/plain; charset=UTF-8
Test body
--001a1149a47ee5ea57053414b981
Content-Type: text/html; charset=UTF-8
<div dir="ltr">Test body
</div>
--001a1149a47ee5ea57053414b981--
从 Exchange 转发 ([电子邮件保护]):
Content-Type: multipart/alternative; boundary="001a1149a47ee5ea57053414b981"
--001a1149a47ee5ea57053414b981
Content-Type: text/plain; charset="UTF-8"
Test body
--001a1149a47ee5ea57053414b981
Content-Type: text/html; charset="UTF-8"
<div dir="ltr">Test body
</div>
--001a1149a47ee5ea57053414b981--
我感觉 DKIM 失败是因为 Exchange 在字符集和边界参数值中添加了引号。希望有办法禁用此功能,这样电子邮件就可以顺利通过 dkim。
答案1
是的,防止在传输过程中修改电子邮件是 DKIM 的优点之一,但显然也有一些副作用。要通过 DKIM,您的 Exchange 服务器必须不对标头进行任何更改,否则 DKIM 的设计将失效,以防止消息被篡改。
我突然想到您可能会问如何阻止 Exchange 更改标题,或者您是否在问 DKIM 的消息篡改好处/副作用?:-)