2011-08-24 10 views
7

¿Cómo puedo obtener el origen del correo (encabezados, cuerpo, límite, todos juntos como un texto sin formato) usando Zend_Mail (POP3).Obtener fuente de correo usando Zend_Mail

Devuelve partes analizadas de forma predeterminada, necesito el origen del mensaje sin formato.

Respuesta

2

No hay tal método en el Zend correo .

Pero puede consultar las fuentes de clase y ver cómo enviar un comando directo al servidor de correo para obtener el origen del mensaje.

1

Quizás podría utilizar los métodos getRawHeader() y getRawContent() de la clase Zend_Mail_Storage_Pop3. ¿Sería suficiente para su propósito?

Some API docs (No he encontrado en la Guía de referencia):

1

Si tiene una instancia Zend_Mail, se puede obtener el contenido decodificado:

/** @var $message Zend_Mail */ 
echo $message->getBodyText()->getRawContent(); 
1

hice mi propia capa para ello:

/** 
* Transport mail layer for retrieve content of message 
* 
* @author Petr Kovar 
*/ 
class My_Mailing_Transport extends Zend_Mail_Transport_Abstract{ 

    protected $_messageContent; 

    /** 
    * Only assign message to some variable 
    */ 
    protected function _sendMail(){ 

     $this->_messageContent = $this->header . Zend_Mime::LINEEND . $this->body; 
    } 

    /** 
    * Get source code of message 
    * 
    * @return string 
    */ 
    public function getMessageContent(){ 
     return $this->_messageContent; 
    } 

} 

Y que única llamada que:

$transport = new My_Mailing_Transport(); 
$transport->send($mail); 
return $transport->getMessageContent(); 
Cuestiones relacionadas