imap_fetchbody - 编码的正文错误

时间:2011-03-15 11:08:50

标签: php android imap

我正在尝试使用以下方式获取电子邮件正文的特定部分:

$message = imap_fetchbody ($imap_stream,$n,1);

这适用于使用Outlook,Hotmail,Yahoo等发送的电子邮件。但是当我尝试获取从Blackberry或Andriod设备发送的电子邮件的正文时,邮件会被编码并加扰,例如:

xmb250IHN0eWxlPSdjb2xvcjojRjk3MWIxMDNiMTEyYjExOGI0N2I1MWI1

虽然正文是编码的,但标题很好。 如何解码从Android或Blackberry设备发送的电子邮件的邮件正文?

谢谢,

克里斯。

1 个答案:

答案 0 :(得分:8)

您应该能够运行imap_fetchstructure来获取编码值。如果该值等于3,则需要通过imap_base64进行解码。

我之前使用过以下内容(不记得以前是否曾使用已发送的移动电子邮件进行过测试):

$structure = imap_fetchstructure($stream, $msgno);
$text = imap_fetchbody($stream, $msgno, $partnum);   
if($structure->encoding == 3) {
    $text = imap_base64($text);
} else if($structure->encoding == 4) {
    $text = imap_qprint($text));
}