电子邮件 – 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,email,dkim 来源: https://codeday.me/bug/20190630/1332431.html