使用DeamonPortOptions修复DKIM签名与genericstable伪装

我使用sendmail从我的debian服务器发送邮件。 我希望能够使用genericstable伪装来发送多个域名的邮件。 我正在使用OpenDKIM签名邮件,但由于OpenDKIM在发生伪装之前签名邮件,因此密钥不匹配。

OpenDKIM在自述页面上解决了这个问题

由于milter协议被合并到MTA中的方式,opendkim在这些头被修改之前会根据这两个特征的需要来查看它们。 这意味着DKIM签名是基于由邮件客户端最初注入的头而不是由MTA实际发送的头来生成的。 结果,由于签名数据和接收数据不匹配,接收方的validation代理将不能validation签名。

build议的解决scheme是:

(1)根据需要发送已经写入标题的邮件,避免使用这些function(或将其closures)。

(2)在单独的盒子上或在同一盒子上设置两个MTA。 第一个MTA应该做所有的重写(即使用这两个特征),第二个应该使用opendkim添加签名,根本不重写。

(3)在configuration文件中有多个DaemonPortOptions行。 第一个守护进程端口(端口25)执行头重写,然后将消息路由到第二个端口; 后者不重写,而是进行签名,然后发送消息。

我想使用第三种解决scheme来解决这个问题,但我不知道如何开始。 由于原因,我不想使用第一个解决scheme。

我目前的sendmail.mc文件中的DeamonPortOptions是

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp')dnl DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea')dnl 

是否可以设置我的sendmail使用1端口伪装和另一个添加DKIM和发送像READMEbuild议?

任何帮助将不胜感激!