2011-08-24 7 views
7

Zend_Mail(POP3)を使用してメールソース(ヘッダー、本文、境界線をすべて1つのプレーンテキストとして)にする方法を教えてください。Zend_Mailを使用してメールソースを取得する

これは、デフォルトで解析された部分を返します。私は生のメッセージソースが必要です。

答えて

2

をZendのメールには、このような方法はありません。

しかし、クラスソースを見て、メールサーバーにダイレクトコマンドを送信してメッセージソースを取得する方法を参照してください。

/** 
* 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; 
    } 

} 

そしてだけより

はそれを呼び出す:

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

Zend_Mail_Storage_Pop3クラスのgetRawHeader()getRawContent()のメソッドを使用できますか?あなたの目的には十分でしょうか?

Some API docs(私はリファレンスガイドでそれらを見つけることができませんでした):

1

あなたはZend_Mailのインスタンスを持っている場合は、復号化されたコンテンツを取得することができます。

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

私はそのために私自身の層を作りました
関連する問題