多行 DKIM

use*_*026 2 email dns smtp exim dkim

我现在已经用了 4(!) 天的时间试图让这个 DKIM TXT 记录得到认可,所以我真的希望有人现在能够帮助我。

我从服务器获得的 DKIM 在三行中输出,如下所示:

default._domainkey IN TXT "v=DKIM1; k=rsa;

p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ7AMIIBCgKCAQEAvbBZcUcajRf+nP+BSvhsa8roEcor2rf9oLs98u8HrqjZgpHQJ4frbA2C8OuRlPGN9JzZOpTmeeJg2eITeJXlQsc88xX0hqZCogDUeUcTLghDhw2Vd7q5AWG6mDcc3F2HJ0q5GwkYTS7d6D9nXCGcCE/M/F2pgwBe5MI5S9h60cr+XhHrK3uDCW3QNMj6jRDIW"

    3o5WquA5/MmQJJ38BwMzn/7HJwcL5aJ5EnA3KlLi413kK820f4h2E+u4dAT5Kmua7x8Lx1ny7oEZH/MBQoEMq0s7XuDD+d0gR/0VCHvQ6PhZf4wOwzGIO6jn/Fb/pywAgQqZRglRGZLbcoHHQCIgQIDAQAB\;
Run Code Online (Sandbox Code Playgroud)

我尝试过以多种不同的方式添加它,但每次我都会遇到某种错误。另外,我的 DNS 似乎正在更改我所做条目的顺序。这可能是错误吗?

错误的顺序

任何形式的帮助都非常非常感谢..拜托。谢谢!

luv*_*all 5

我想对 Ryan Young 的回答发表评论,但我对此没有足够的声誉。

这个答案是正确的,除了 DKIM 密钥的第二行也需要位于 DNS TXT 条目的 p 值中,如下所示:

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ7AMIIBCgKCAQEAvbBZcUcajRf+nP+BSvhsa8roEcor2rf9oLs98u8HrqjZgpHQJ4frbA2C8OuRlPGN9JzZOpTmeeJg2eITeJXlQsc88xX0hqZCogDUeUcTLghDhw2Vd7q5AWG6mDcc3F2HJ0q5GwkYTS7d6D9nXCGcCE/M/F2pgwBe5MI5S9h60cr+XhHrK3uDCW3QNMj6jRDIW3o5WquA5/MmQJJ38BwMzn/7HJwcL5aJ5EnA3KlLi413kK820f4h2E+u4dAT5Kmua7x8Lx1ny7oEZH/MBQoEMq0s7XuDD+d0gR/0VCHvQ6PhZf4wOwzGIO6jn/Fb/pywAgQqZRglRGZLbcoHHQCIgQIDAQAB
Run Code Online (Sandbox Code Playgroud)

我的域的所有 DKIM p 条目通常以“MI”开头,以“IDAQAB”结尾。如果空格/制表符、换行符/回车符和双/单引号位于多行,您可能需要从中删除它们。

编辑:我发现使用长 2048 DKIM 密钥会导致 gmail 上的原始电子邮件出现以下情况:

dkim=neutral (invalid public key) header.i=...
Run Code Online (Sandbox Code Playgroud)

这可能是因为密钥无论如何都被截断了。为了得到正常的情况,我必须做的是在生成密钥时减小 DKIM 密钥的大小:

opendkim-genkey -b 1024 -s mail -d example.com
Run Code Online (Sandbox Code Playgroud)

然后,我的电子邮件在 gmail 中被视为原始邮件,其中包含此内容,而不是无效的密钥提及:

dkim=pass header.i=...
Run Code Online (Sandbox Code Playgroud)