Zend_Mail (POP3) を使用してメール ソース (ヘッダー、本文、境界線 - すべてプレーン テキストとして) を取得するにはどうすればよいですか。
デフォルトでは解析された部分が返されます。未加工のメッセージ ソースが必要です。
Zend_Mail (POP3) を使用してメール ソース (ヘッダー、本文、境界線 - すべてプレーン テキストとして) を取得するにはどうすればよいですか。
デフォルトでは解析された部分が返されます。未加工のメッセージ ソースが必要です。
Zend Mail にはそのような方法はありません。
しかし、クラス ソースを見て、メール サーバーに直接コマンドを送信してメッセージ ソースを取得する方法を確認できます。
そのために独自のレイヤーを作成しました。
/**
* 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();
Zend_Mail インスタンスがある場合は、デコードされたコンテンツを取得できます。
/** @var $message Zend_Mail */
echo $message->getBodyText()->getRawContent();
おそらく、クラスの メソッドgetRawHeader()
とgetRawContent()
メソッドを使用できます。Zend_Mail_Storage_Pop3
あなたの目的には十分でしょうか?
いくつかの API ドキュメント(リファレンス ガイドにはありませんでした):