8

Zend_Mail (POP3) を使用してメール ソース (ヘッダー、本文、境界線 - すべてプレーン テキストとして) を取得するにはどうすればよいですか。

デフォルトでは解析された部分が返されます。未加工のメッセージ ソースが必要です。

4

4 に答える 4

2

Zend Mail にはそのような方法はありません。

しかし、クラス ソースを見て、メール サーバーに直接コマンドを送信してメッセージ ソースを取得する方法を確認できます。

于 2011-08-30T20:13:45.970 に答える
1

そのために独自のレイヤーを作成しました。

    /**
 * 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(); 
于 2011-12-06T11:01:20.017 に答える
1

Zend_Mail インスタンスがある場合は、デコードされたコンテンツを取得できます。

/** @var $message Zend_Mail */
echo $message->getBodyText()->getRawContent();
于 2011-08-25T16:22:00.483 に答える
1

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

いくつかの API ドキュメント(リファレンス ガイドにはありませんでした):

于 2011-08-24T07:57:25.807 に答える