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

时间:2017-05-24 23:15:34

标签: php email utf-8 imap decoding

我使用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;
            }

如果有人可以帮助解决此问题。感谢

2 个答案:

答案 0 :(得分:1)

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

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

给出的脚本使用了一个pear包,而不是IMAP扩展,但根据你的输入,它应该是非常相等的

希望这有帮助

答案 1 :(得分:0)

尝试按照quoted-printable-decode()

使用here功能