我正在尝试通过亚马逊SES发送电子邮件。关于电子邮件的DKIM签名,我遇到了一个非常奇怪的行为。
根据本文档,最后两行规定Amazon SES添加自己的DKIM签名,如下所示:
Received-SPF: pass (domain of amazonses.com designates 5.240.8.29 as permitted sender)
Authentication-Results: atlas222.free.mail.bf1.yahoo.com;
dkim=perm_fail header.i=@amazonses.com header.s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw;
spf=pass smtp.mailfrom=amazonses.com;
dmarc=unknown header.from=somedomain.com;
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;
s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=167098234;
h=Date:MIME-Version:Message-ID:To:From:Reply-To:Subject:Feedback-ID:List-Unsubscribe:List-Unsubscribe-Post:List-Help:Content-Transfer-Encoding:Content-Type;
bh=N9guynJNBoGOSIx//oL1JHgbJyamt5u5yxgWxtw04xA=;
b=geaU3laohsTcVBHSolTgZ2v9L9QKv0dD7B9UIpuPWIEnaUS2COUXFHrlTR66dN7p
j7D90DpKM4hUYUU2LGUIBWw6xGv/4clqol45DBYNZnvyTD9TRR+D3PL6AH2oezRggV1
MTnZ2ygtXlSctbJKWDeZR1AUlAw5VJJrFea9LxQE=
如果我在SES上激活我的DKIM,则会添加另一个签名以及另一个DKIM线路dkim=perm_fail header.i=@amazonses.com...
。当正确设置时,它具有pass
状态。
Amazon SES添加的DKIM签名怎么会有perm_fail
状态?有办法纠正吗?
终于!经过数小时的搜索和测试,我发现了为什么亚马逊SES DKIM检查失败。
这是一个编码问题。
使用允许的utf8 mime类型发送电子邮件,当在电子邮件正文/邮件头中发送一些外来字符时会导致此错误。
发送带有hello world正文的简单电子邮件时,DKIM已通过。但是发送包含像ᥱ
这样的字符的电子邮件,例如使用utf8,会导致DKIM失败。