PHP 利用Mail_MimeDecode类提取邮件正文
参考链接:http://blog.csdn.net/dmtnewtons_blog/article/details/18765289
参考链接:http://blog.csdn.net/dmtnewtons_blog/article/details/19327105
根据主流的邮件解析类Mail_MimeDecode,提取邮件正文。如有问题请指教。
#获取邮件正文 #[path] 邮件路径 function getMailBody($path){ if(!is_file($path)) return false; $contents_c = file_get_contents($path); if(empty($contents_c)) return false; $mmd_c = new Mail_mimeDecode($contents_c); //创建Mail_mimeDecode类的实例 $sr = $mmd_c->decode(array ( ‘include_bodies‘ => true, //是否包含邮件正文 ‘decode_bodies‘ => false, ‘decode_headers‘ => true )); unset($mail_part); $mail_part = getMailPart($sr); $mail_code = $mail_part->headers; $mail_code = empty($mail_code[‘content-transfer-encoding‘])?‘‘:$mail_code[‘content-transfer-encoding‘]; //编码格式 $mail_type = $mail_part->ctype_parameters; $mail_type = empty($mail_type[‘charset‘])?‘GBK‘:$mail_type[‘charset‘]; $mail_body = $mail_part->body; //正文内容 if ($mail_code == "base64") { //判断编码格式,受‘decode_bodies‘影响 $text = base64_decode("$mail_body"); $text = iconv("$mail_type", "UTF-8", $text); } else { $text = quoted_printable_decode("$mail_body"); $text = iconv("$mail_type", "UTF-8", $text); } $body = $text; return $body; } function getMailPart($sr){ $accept_primary = array("multipart", "text", "message"); //允许显示的邮件主要正文,过滤image等附件格式 if (property_exists($sr, ‘parts‘)) { $mail_part = $sr->parts; foreach($mail_part as $k => $m_part){ if(in_array($m_part->ctype_primary, $accept_primary)){ if($m_part->ctype_secondary == "html"){ $mail_part = $m_part; break; }else{ $mail_part = &getMailPart($m_part); }//end if }//end if }//end for } else { $mail_part = $sr; }//end if return $mail_part; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。