我尝试使用 Zend Framework 1.12 从我的 POP3/IMAP 帐户下载电子邮件,它运行良好。QP 标头字段将自动解码。但是,当标头字段(来自名称或主题)采用 base64 编码时,如下所示:
=?UTF-8?B?c3DEvsWIYcWl?=
它不会自动对其进行base64解码。不知道为什么。虽然修复这种“我的方式”很容易,但我想把它做好。
任何人都可以推荐一种处理base64标头的好方法吗?
非常感谢。
我尝试使用 Zend Framework 1.12 从我的 POP3/IMAP 帐户下载电子邮件,它运行良好。QP 标头字段将自动解码。但是,当标头字段(来自名称或主题)采用 base64 编码时,如下所示:
=?UTF-8?B?c3DEvsWIYcWl?=
它不会自动对其进行base64解码。不知道为什么。虽然修复这种“我的方式”很容易,但我想把它做好。
任何人都可以推荐一种处理base64标头的好方法吗?
非常感谢。
您可以使用iconv_mime_decode_headers() PHP 函数。
$decoded = iconv_mime_decode_headers('Subject: '.$subject, 0, "UTF-8");
var_dump(decoded['Subject']);
请注意,您可以将多个标头参数传递给一个函数,方法是用换行符或“\n”分隔它们。例如
$headers = "Subject: {$subject}\nFrom: {$from}";
$decoded = iconv_mime_decode_headers($headers, 0, "UTF-8");
在这种情况下,您将获得带有“主题”和“来自”键的数组以及解码数据。
它负责mail mime parsers
解码邮件标头。网上有开源base64 decoders
可用于解码这些字符串。