gpt4 book ai didi

php - DKIM 仅适用于短消息

转载 作者:行者123 更新时间:2023-12-04 03:16:36 26 4
gpt4 key购买 nike

问题:

我正在使用带有 Postfix 的 OpenDKIM。该邮件使用以下代码在 PHP 中生成,然后使用 mail() 发送:

// message
$message = "--$hash".PHP_EOL;
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"".PHP_EOL;
$message .= "Content-Transfer-Encoding: base64".PHP_EOL.PHP_EOL;
$message .= base64_encode($body).PHP_EOL.PHP_EOL;
$message .= "--$hash".PHP_EOL;

OpenDKIM 适用于长度小于 742 个字符的任何消息,但如果消息长度为 742 个字符或更多,Google 会报告 DKIM“ body hash did not verify”。

查看 DKIM 和 Google,我找不到有关导致这种情况的任何信息的信息。我尝试了多条 741 个字符(全部通过)和多条 742 个字符(全部失败)的消息。

错误:

唯一的错误是 Google 收到的电子邮件(它说它无法进行身份验证):
dkim=neutral (body hash did not verify) header.i=@mailer.example.com;
/var/log/maillog在成功和不成功的电子邮件中具有以下(或类似内容):
Nov  5 00:58:57 ip-XX-XX-XX-XX opendkim[3953]: 7D2946081A: DKIM-Signature field added (s=default, d=mailer.example.com)

解决方案:

根据下面@Adrien Lebner 的解决方案,这是从
base64_encode($body)


chunk_split(base64_encode($body), 76, PHP_EOL)

解决了这个问题。

最佳答案

如果您在多行上发送相同的内容怎么办?
如果行太长,DKIM 可能会中断:

2.1.1. Line Length Limits

There are two limits that this specification places on the number of characters in a line. Each line of characters MUST be no more than 998 characters, and SHOULD be no more than 78 characters, excluding the CRLF.

关于php - DKIM 仅适用于短消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com