我的电子邮件以前在标题中使用 DKIM 签名。现在,如果你检查电子邮件来源,它没有签名。
哪里出了问题?如何调试?可以查看哪些日志?
cat /etc/exim4/conf.d/main/00_local_macros
返回:
DKIM_CANON = relaxed
DKIM_SELECTOR = mail
DKIM_DOMAIN = ${sg{${lc:${domain:$h_from:}}}{^www\.}{}}
DKIM_FILE = /etc/exim4/keys/${dkim_domain}/mail.private
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
按键位置:
ls -la /etc/exim4/keys/example.co.za/
返回:
-rwxr-x--- 1 Debian-exim Debian-exim 887 Mar 7 17:26 mail.private
-rwxr-x--- 1 Debian-exim Debian-exim 305 Mar 7 17:26 mail.txt
答案1
检查您的主日志以验证哪个传输方式正在传递您的邮件(T= 行)。对电子邮件进行签名的唯一标准传输方式是remote_smtp
。如果邮件由其他传输方式传递,则不会对其进行签名。
编辑:我相信这也许你的问题可能${dkim_domain}
不包含以下值DKIM_DOMAIN
:
DKIM_DOMAIN = ${sg{${lc:${domain:$h_from:}}}{^www\.}{}}
DKIM_FILE = /etc/exim4/keys/${dkim_domain}/mail.private
尝试:
DKIM_DOMAIN = ${sg{${lc:${domain:$h_from:}}}{^www\.}{}}
DKIM_FILE = /etc/exim4/keys/{DKIM_DOMAIN}/mail.private
虽然我建议不要从www
域发送,但您可以按如下方式定义 DKIM_DOMAIN。您可以使用域重写来删除www
域的部分,尽管我会尽量避免首先将其放在那里。
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
我更喜欢使用拆分配置,尽管如果您只有简单的修改,单个文件配置也可以工作。我所做的任何更改都是新文件,具有新名称。我有几个修改版本的 Exim 提供的配置文件,这些文件已根据我的需要进行了修改。当 Exim 升级包括配置更改时,此方法会保留我的更改。无论哪种情况,请考虑使用修订控制系统来跟踪您的更改。
运行 exim 的用户 ID 需要能够读取密钥文件以及指向这些文件的所有目录。但是,它不应能够写入或替换密钥。如果您在专用目录中有密钥,您可以通过将模式更改为 、将750
所有者更改为root
以及将组更改为Debian-exim
或 Exim 以任何组运行来保护它。以同样的方式保护密钥,但将模式设置为440
或640
。