好的,我设法自己解决了这个问题,但是我想在这里张贴步骤以供后代参考,因为对此(我可以找到)的文档数量为零,而且实际上是猜测和检查。
如上所述,设置“ Domain *”后,它将像这样签名:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=clientdomain.com;
s=main; t=1250005729;
bh=twleuNpYDuUTZQ/ur9Y2wxCprI0RpF4+LlFYMG81xwE=;
h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
b=kohI7XnLlw/uG4XMJoloc4m9zC13g48+Av5w5z7CVE0u3NxsfEqwfDriapn7s7Upi
31F3k8PDT+eF57gOu2riXaOi53bH3Fn/+j0xCgJf8QpRVfk397w4nUWP/y8tz4jfRx
GhH21iYo05umP0XflHNglpyEX02bssscu2VzXwMc=
注意“ d = clientdomain.com”。它是根据电子邮件中的发件人地址生成的,发件人地址类似于“ contact@clientdomain.com”。显然,如果它检查了客户端的域,但没有发现DNS TXT记录,则验证将失败。
因此,无论如何,我在本文档中发现可以设置KeyList参数。
http://manpages.ubuntu.com/manpages/hardy/man5/dkim-filter.conf.5.html
它并没有真正描述我想做什么,但是我认为我会玩的。我注释掉了KeyFile,并将KeyList设置为“ /etc/mail/dkim_domains.key”,这是我编写的任意文件名。然后,我创建了该文件,并将其放在“ *:feedmailpro.com:/etc/mail/dkim.key”中。这可以告诉任何客户端域,并用我的域(feedmailpro.com)对其进行签名,然后使用dkim.key文件。
重新启动DKIM和后缀
sudo /etc/init.d/dkim-filter restart
sudo /etc/init.d/postfix restart
现在,这是我发送测试电子邮件时生成的密钥。
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=feedmailpro.com;
s=dkim.key; t=1250005729;
bh=twleuNpYDuUTZQ/ur9Y2wxCprI0RpF4+LlFYMG81xwE=;
h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
b=kohI7XnLlw/uG4XMJoloc4m9zC13g48+Av5w5z7CVE0u3NxsfEqwfDriapn7s7Upi
31F3k8PDT+eF57gOu2riXaOi53bH3Fn/+j0xCgJf8QpRVfk397w4nUWP/y8tz4jfRx
GhH21iYo05umP0XflHNglpyEX02bssscu2VzXwMc=
进行了改进,您会看到d =现在已设置为我的域(即使电子邮件的发件人地址不是我的域)。但是,s =更改为“ dkim.key”,而不是我在dkim-filter.conf中选择的选择器。在原始设置说明中,我将选择器设置为“邮件”。这很奇怪,但是我注意到它将其更改为密钥dkim.key的文件名。
所以我去了,将“ /etc/mail/dkim.key”重命名为“ / etc / mail / mail”。还更新了“ /etc/mail/dkim_domains.key”中对它的引用。
再次像上面一样重新启动dkim-filter和postfix,现在它开始工作了。这是使用正确的选择器正确签名的最终标头(显然基于密钥的文件名)。
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=feedmailpro.com;
s=mail; t=1250006218;
bh=tBguOuDhBDlhv0m4KF66LG10V/8ijLcAKZ4JbjpLXFM=;
h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
b=c9eqvd+CY86BJDUItWVVRvI3nibfEDORZbye+sD1PVltrcSBOiLZAxF3Y/4mP6vRX
MUUNCC004oIH1u7FYafgF32lpuioMP1cd7bi6x3AZ5zH4BYETNBnnz4AhAPBtqlIh/
FFMz8jkhhLhcM2hDpwJkuKjAe3LzfNVDP8kD11ZI=
现在s = mail是正确的,而d = feedmailpro.com是正确的。有用!
总体而言,这比我预期的要困难得多,并且关于如何执行此操作(对所有传出域进行签名)的文档似乎为零,但是我想它是开源软件,所以我不能抱怨。
最后一点,要检查TXT DNS记录是否设置正确,可以对域执行类似的命令
dig mail._domainkey.feedmailpro.com TXT
可能需要安装dig(sudo apt-get install dig)。如果您使用Slicehost管理器添加DNS条目,则需要输入TXT记录,如下所示。
Type: TXT
Name: mail._domainkey
Data: k=rsa; t=s; p=M5GfMA0...YOUR LONG KEY...fIDAQAB
TTL seconds: 86400
我真的不明白为什么将名称设置为“ mail._domainkey”,而结尾没有句号或没有我的域,例如“ mail._domainkey.feedmailpro.com”。但是无论如何,它似乎可以工作,所以我很高兴。
如果您想重复此操作,请参阅以下我的说明:https :
//help.ubuntu.com/community/Postfix/DKIM