PHP imap如何正确解码邮件正文?

PHP imap how to decode email body correctly?

我使用 php 的 imap 自己开发了一个电子邮件系统,一切正常,除了用阿拉伯语编写的电子邮件,我已经尝试了所有解码功能,但似乎没有任何效果。我通过使用 imap_utf8 而不是电子邮件正文使主题完美运行。

这是电子邮件正文的样子:

�
رحبا


هاي الرسالة �

这是我的代码:

$text = imap_fetchbody($imap, $uid, $partNumber, FT_UID);
            switch ($structure->encoding) {
                case 3:
                    return imap_base64($text);
                case 4:
                    return imap_qprint($text);
                default:
                    return $text;
            }

如果有人可以帮助解决这个问题。谢谢

尝试使用quoted-printable-decode() function as stated here

我建议你看看这个:https://github.com/mantisbt-plugins/EmailReporting/blob/master/core/Mail/Parser.php 它也使用你用过的东西,但它在上面添加了字符编码。

主题字符编码可以内联。对于电子邮件正文,它的一个字符集适用于整个正文

给定的脚本使用 pear 包,而不是 IMAP 扩展,但根据您的输入,它应该相当

希望对您有所帮助