使用Zend_Mail获取邮件源

时间:2011-08-24 06:04:54

标签: php zend-framework email pop3 zend-mail

如何使用Zend_Mail(POP3)获取邮件源(标题,正文,边界 - 全部作为纯文本)。

默认返回已解析的部分,我需要原始消息源。

4 个答案:

答案 0 :(得分:2)

Zend Mail中没有这样的方法。

但您可以查看类源并查看如何将直接命令发送到邮件服务器以获取消息源。

答案 1 :(得分:1)

也许您可以使用getRawHeader()类的getRawContent()Zend_Mail_Storage_Pop3方法。这对你的目的是否足够?

Some API docs(我在参考指南中没有找到它们):

答案 2 :(得分:1)

如果您有Zend_Mail实例,则可以获取已解码的内容:

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

答案 3 :(得分: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();