2009-11-26 12 views
5

헬프 데스크 티켓 응답으로 들어오는 전자 메일을 파이프 처리하는 헬프 데스크 파이프 처리기를 쓰고 있습니다. 일부 전자 메일은 완벽하게 잘 들어오고 있으며, 다른 전자 메일은 텍스트의 뒤죽박죽으로 들어오고 3D는 모두 하나의 거대한 문자열로 뭉쳐져 있습니다. 누구나 그것을 일반 텍스트로 디코딩하는 방법에 대한 아이디어를 가지고 있습니까?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

어떻게 든 콘텐츠 유형이 올바르게 지정되지 않고 젠드 그것을 해독하는 방법을 알고하지 않는 추측 할게요 : 참고로

이 내 메일 파서 기능입니다. 나는 전에 이것을 보았다는 것을 알았지 만, 그것이 어디에서 어떻게 해결되었는지를 기억할 수 없다.

일반 텍스트와 같이 처리되는 quoted-printable처럼 보입니다.

+1

이것은 우리 스크립트의 일부에도 발생합니다. Apple Mac은 정확히 내가 정확히 무엇을 찾고 있었는지 –

+1

을 정확하게 기억한다면 비난해야합니다. php의 함수는 quoted_printable_decode()라고 불립니다. 네가 나에게 좌절감을 주었다. 고마워. – Mark