使用Exim4作为Exchange 2010的“边缘传输”时出现DKIM故障

我有一台运行Exim 4.72的服务器,它的设置类似于Exchange的“边缘传输”angular色:它将邮件从互联网转发到Exchange,并将邮件从交换机转发到互联网。

我在Exim中为发送邮件configuration了DKIM。 当邮件直接发送到Exim时,它正常工作; Gmail报告正文哈希是正确的。 当发送到Exchange,然后转发到Exim,DKIM主体散列检查失败。

我尝试了简单轻松的大炮。 任何人都有类似的经历或有任何见解?

像你一样,我怀疑有些东西正在被过渡。 您的exim系统是否偶然地为每个传出消息添加一个股票样板文件? DKIM签名必须在添加之后进行,并包含这些更改,以便将其包含在主体哈希中。

通用testing程序:

  1. 捕获一个原始的消息。 将收件人更改为您的私人邮箱,以便您可以获取发送的电子邮件的副本。 我们假定带有消息的文件名为test.eml。 将其保存在exim服务器的某个地方。
  2. 临时configurationexim到本地主机的DKIM签名消息。 不要重新启动exim,我们只是从命令行testing这个。
  3. 在服务器上,使用如下命令将消息传递给exim:

    exim -d -t <test.eml> test.out 2>&1

  4. 完成后,会有一个名为“test.out”的结果文件。 编辑该文件并查找“PDKIM”。 首先是标准化的机构。 第四例左右是标准化的标题。 看看这些部分,看看是否有什么变化,与你发送的原始信息和收到的信息相比。

  5. 一般来说,查找有关DKIM签名的任何内容。 将有大量的数据,所以可能需要相当多的挖掘才能find它。
  6. 确保DKIM签名生成后没有任何传输添加任何内容。
  7. 删除临时configuration设置,允许exim在本地主机上签名邮件。

我所看到的典型变化通常与mime版本,mimetypes,内容传输编码,内容types或字符集在传输中被更改有关。 但是,你说你的头检查通过,你的身体检查没有。 所以这使得它更复杂。