电子邮件 – DKIM签名在使用PHP发送邮件时无法验证

我的gmail / hotmail过滤来自我服务器的垃圾邮件问题.垃圾邮件刺客分数很低,所以我知道我的IP不在任何黑名单上,或者这意味着它是gmail / hotmail用来阻止电子邮件通过的过滤.

我做了一些研究并读到使用DKIM可能会解决我遇到的问题.我继续在我的服务器上启用DKIM.现在,当我使用我的电子邮件客户端发送电子邮件时,位于此处的工具(http://www.brandonchecketts.com/emailtest.php)将DKIM签名报告为有效.

下一步是在我的PHP邮件中实现DKIM签名.所以我继续使用这里的DKIM类(http://sourceforge.net/projects/dkim-class-php/),这是PHPMailer的衍生产品.

但是,当我现在发送电子邮件时,尽管包含DKIM签名,但我从验证工具中收到一个奇怪的错误.

result = fail
Details: message has been altered

您可以在此处查看完整报告:http://www.brandonchecketts.com/emailtest.php?email=K86KTXpMbl%40www.brandonchecketts.com

感谢您的帮助,我拼命想让这个工作起来,并且已经在墙上撞了好几个小时了.

解决方法:

我在这里给出了答案:Setting up DomainKeys/DKIM in a PHP-based SMTP client

基本上您需要确保的是,您提供MTA添加到您的外发电子邮件中的所有标头.由于不同的系统配置不同,因此没有一种尺寸适合所有解决方案.

查看签名失败的消息源(并给出消息已更改错误)以确定添加了哪些标头.通常,您的MTA将添加Message-ID和Date标头(如果缺少日期标题,也可能导致垃圾邮件刺客评分较低,因此您也可以包括它!).

另一个常见的错误是您在签署邮件后自己更改邮件,因此请确保在签署邮件后未对代码进行任何修改.

在确定添加了哪些标头之后,您应该自己添加这些标头(因此将其添加的MTA的默认行为覆盖),然后再签名.

上一篇:无法使用PHP openssl_sign进行任何签名?


下一篇:python数据结构之字典(未完成)