gpt4 book ai didi

PHP无效的引用可打印序列,来自Yahoo的格式错误的q编码

转载 作者:行者123 更新时间:2023-12-04 16:25:52 24 4
gpt4 key购买 nike

我在从 Yahoo 帐户转发的电子邮件生成的 PHP 中遇到以下错误:

Notice: Unknown: Invalid quoted-printable sequence: =?UTF-8?Q?ck-off with Weekly Sale up to 90% off (errflg=3) in Unknown on line 0

我花了几个小时研究这个问题,并决定在没有雅虎参与的情况下通过电子邮件向自己发送完全相同的输出字符串。正确解码的原始q编码文本:

=?UTF-8?Q?GOG_Forward=3A_Fw=3A_=F0=9F=98=89_A_great_Monday_kick-?= =?UTF-8?Q?off_with_Weekly_Sale_up_to_90=25_off?=

来自 Yahoo 的格式错误的 q 编码文本:

=?UTF-8?Q?GOG_Forward =?UTF-8?Q?ck-off_with_Weekly_Sale_up_to_90%_off?=

解码时正确的字符串:

GOG Forward: Fw: 😉 A great Monday kick-off with Weekly Sale up to 90% off

Roundcube 设法解码正常文本和格式错误的文本,尽管我不确定如何解码,而且 25 兆字节 有点难以挖掘,我什至无法确定它们在哪里'正在解码主题标题。

如何修复 Yahoo 格式错误的 q-encoding 版本?

<?php
//These fail:
echo imap_mime_header_decode($mail_message_headers['Subject']);
echo quoted_printable_decode($mail_message_headers['Subject']);
?>

为了澄清,imap_fetchstructure页面明确了编码的值 4Quoted-Printable/ENCQUOTEDPRINTABLE


新发展

事实证明,由于某种原因,Yahoo 为同一个 header 发送了主题两次,其中一个格式错误,另一个没有。这是 原始电子邮件中的 Subject header :

Subject: =?UTF-8?Q?GOG_Forward:_Fw:_=F0=9F=98=89_A_great_Monday_ki?=
=?UTF-8?Q?ck-off_with_Weekly_Sale_up_to_90%_off?=
MIME-Version: 1.0

最佳答案

我创建了一个使用 Roundcube 的源代码来解码消息的解决方案。

我发布了代码和演示:

  • You can see it here
  • 点击大播放按钮预览提取
  • 转到代码选项卡,查看提取的 Roundcube 代码,您可以将其用于您的项目

由于您在示例中提到不使用类,因此我从 rube_mime 中提取了 Roundcube 的 decode_mime_string() 函数,以及来自 rcube_charset 的一些内容例如 $aliasesparse_charset()convert()


就从 Yahoo 解码格式错误的文本而言:

=?UTF-8?Q?GOG_Forward =?UTF-8?Q?ck-off_with_Weekly_Sale_up_to_90%_off?=

进入这个:

GOG Forward: Fw: 😉 A great Monday kick-off with Weekly Sale up to 90% off

这是不可能的。里面没有足够的数据。例如,它缺少“😉 A great Monday ki”。您有电子邮件地址的完整来源吗?

关于PHP无效的引用可打印序列,来自Yahoo的格式错误的q编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64355122/

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