2009-11-26 28 views
5

Estoy escribiendo un controlador de pipa de soporte técnico para canalizar los correos electrónicos entrantes como respuestas de ticket del servicio de asistencia. Algunos correos electrónicos están entrando perfectamente bien, otros vienen como un revoltijo del texto y todos los 3D son convertidos en una cadena gigante. ¿Alguien tiene una idea sobre cómo decodificar eso en texto plano?Zend_Mail y = 0D = 0A = 3D = 3D = 3D = 3D = 3D

Como referencia, este es mi correo función de análisis sintáctico:

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

lo siento, tuve que entrar aquí para ver lo que = 0D = 0A = 3D = 3D = 3D = 3D se trataba. –

Respuesta

5

Voy a tomar una conjetura que de alguna manera no se especifica correctamente el tipo de contenido y Zend no sabe cómo decodificarlo. Sé que he visto esto antes, pero no puedo recordar dónde o cómo fue 'resuelto'.

Parece que la impresión con comillas se trata como texto sin formato.

+1

Esto también le ocurre a algunos de nuestros scripts, los Apple Macs tienen la culpa si recuerdo correctamente –

+1

exactamente lo que estaba buscando. la función en php se llama quoted_printable_decode(); me salvaste horas de frustración, gracias – Mark