2009-11-26 58 views
5

我正在編寫一個幫助臺管道處理程序來管理傳入電子郵件作爲幫助臺門票回覆。一些電子郵件進入完美的狀態,其他電子郵件混雜在一起,並且三維全部都變成了一個巨大的字符串。有沒有人有關於如何將其解碼爲純文本的想法。Zend_Mail = 0D = 0A = 3D = 3D = 3D = 3D = 3D

供參考,這是我的郵件分析器功能:

public function parseEmailMessage(Zend_Mail_Message $msg) 
{ 
    if ($msg->isMultiPart()) { 
     $arrAttachments = array(); 
     $body = ''; 
     // Multipart Mime Message 
     foreach (new RecursiveIteratorIterator($msg) as $part) { 
      try { 

       $mimeType = strtok($part->contentType, ';'); 

       // Parse file name 
       preg_match('/name="(?<filename>[a-zA-Z0-9.\-_]+)"/is', $part->contentType, $attachmentName); 

       // Append plaintext results to $body 
       // All other content parts will be treated as attachments 
       switch ($mimeType) { 
        case 'text/plain': 
         $body .= trim($part->getContent()) . "\n"; 
         break; 
        case 'text/html': 
         $body .= trim(strip_tags($part->getContent)); 
         break; 
        default: 
         $arrAttachments[] = array(
          'attachment_mime' => $mimeType, 
          'attachment_name' => $this->filterFileName($attachmentName['filename']), 
          'base64data' => trim($part->getContent()) 
         ); 
       } 

      } catch (Zend_Mail_Exception $e) { 
       // ignore 
      } 
     } 

     return array($body, $arrAttachments); 
    } else { 
     // Plain text message 
     return array(trim($msg->getContent()), array()); 
    } 
} 
+4

對不起,不得不在這裏看看= = 0D = 0A = 3D = 3D = 3D = 3D。 –

回答

5

,我承擔了莫名其妙的內容類型不正確指定和Zend並不知道如何將其解碼猜測。我知道我以前見過這個,但我不記得它在哪裏或如何「解決」了。

它看起來像quoted-printable被視爲純文本。

+1

這也發生在我們的一些腳本上 - 如果我沒有記錯的話,蘋果電腦公司的責任應該歸咎於我正在尋找的 –

+1

。 php中的函數叫做quoted_printable_decode();你救了我幾個小時的挫折,謝謝 – Mark