Zend Framework Mail:传入邮件的Base64标头编码

时间:2013-03-13 11:14:13

标签: zend-framework header base64 imap pop3

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

=?UTF-8?B?c3DEvsWIYcWl?=

它不会自动base64解码它。不知道为什么。虽然很容易解决这个“我的方式”,但我想做得对。

有人可以推荐一个如何处理base64标头的好方法吗?

非常感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用iconv_mime_decode_headers() PHP函数。

   $decoded = iconv_mime_decode_headers('Subject: '.$subject, 0, "UTF-8");
   var_dump(decoded['Subject']);

注意,您可以将多个标头参数传递给一个函数,方法是用换行符或“\ n”分隔它们。 e.g。

   $headers = "Subject: {$subject}\nFrom: {$from}";
   $decoded = iconv_mime_decode_headers($headers, 0, "UTF-8");

在这种情况下,您将获得带有解码数据的“Subject”和“From”键的数组。

答案 1 :(得分:0)

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