我使用OpenDKIM在我的后缀服务器上签名邮件。当从它的原始域用SMTPS发送时,它的工作原理是一样的(比如example.com)。但是,来自LAN上SMTP客户端的邮件没有签名。所述客户端不具有来自同一来源域(例如client1.lan),而是与smtp_generic_maps一起转换为相同来源(特别是client1@example.com)。理想情况下,我想在那封寄出的邮件上签名。
在/etc/postfix/main.fi中有:
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock在/etc/opendkim.conf中有:
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts在/etc/opendkim/受托管理人中,我有:
::1
127.0.0.1
localhost
ip6-localhost
ip6-loopback
mail
10.0.0.0/24
*.lan发布于 2018-10-01 09:43:44
在后缀中,确保/etc/postfix/main.conf包含:
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen} {auth_type}这将确保来自经过身份验证的用户的邮件将由OpenDKIM签名。根据文件:
除非消息符合签名条件,否则将进行验证,即:(1)必须由-d命令行开关或域配置文件设置列出From: address (如果存在)上的域,(2) (a)连接到MTA的客户端必须经过身份验证,或(b)连接到MTA的客户端必须在InternalHosts配置文件设置引用的文件中列出(或位于该选项的默认列表中),或(c)客户端必须连接到由InternalHosts配置文件设置命名的守护进程端口,或者(d) MTA必须设置一个或多个宏,与MacroList配置文件设置所设置的条件相匹配。对于(a)项,测试是是否设置了MTA宏"{auth_type}“并包含任何非空值。这意味着MTA必须在报头结束(EOH)阶段之前或期间将该宏的值传递给过滤器,以便对其值进行测试。
发布于 2017-02-12 13:42:30
如果要中继这些域并将它们签名到其他域(基于From:头),那么您必须在opendkim上用SigningTable配置映射这些其他域,甚至可以通过在KeyTable上匹配它们来分配不同的键和选择器--两者都指向不同的映射文件。
我也遇到了类似的问题,但是我可以通过查看邮件头来调试它--在那里您可以找到转发服务器正在使用的确切主机名和IP地址,例如:
Received: from client1.lan (client1.localdomain [10.0.0.2]) by example.com
(Postfix) with ESMTPS id 71B8D10C1A68 for <client1@example.com>;
Sun, 12 Feb 2017 13:19:33 +0000 (UTC)然后,您可以检查中继服务器是否正在使用内部网络、它使用的主机名以及它打算从哪个域发送电子邮件。
发布于 2017-06-27 08:19:09
同样的问题:从远程主机发送的邮件没有签名。
解决方案很简单:只需将远程发送方的IP添加到/etc/opendkim/受托人主机
https://serverfault.com/questions/830979
复制相似问题