1

我尝试使用 Zend Framework 1.12 从我的 POP3/IMAP 帐户下载电子邮件,它运行良好。QP 标头字段将自动解码。但是,当标头字段(来自名称或主题)采用 base64 编码时,如下所示:

=?UTF-8?B?c3DEvsWIYcWl?=

它不会自动对其进行base64解码。不知道为什么。虽然修复这种“我的方式”很容易,但我想把它做好。

任何人都可以推荐一种处理base64标头的好方法吗?

非常感谢。

4

2 回答 2

1

您可以使用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");

在这种情况下,您将获得带有“主题”和“来自”键的数组以及解码数据。

于 2013-03-26T08:58:08.157 回答
0

它负责mail mime parsers解码邮件标头。网上有开源base64 decoders可用于解码这些字符串。

于 2013-03-15T05:50:54.717 回答