Получить источник почты, используя Zend_Mail - PullRequest
8 голосов
/ 24 августа 2011

Как я могу получить почтовый источник (заголовки, тело, границу - все вместе в виде простого текста), используя Zend_Mail (POP3).

По умолчанию возвращает проанализированные части, мне нужен необработанный источник сообщений.

Ответы [ 4 ]

2 голосов
/ 31 августа 2011

В Zend Mail такого метода нет.

Но вы можете посмотреть на источники классов и посмотреть, как отправить прямую команду на почтовый сервер, чтобы получить источник сообщения.

1 голос
/ 06 декабря 2011

Я сделал для этого свой слой:

    /**
 * 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 голос
/ 25 августа 2011

Если у вас есть экземпляр Zend_Mail, вы можете получить декодированный контент:

/** @var $message Zend_Mail */
echo $message->getBodyText()->getRawContent();
1 голос
/ 24 августа 2011

Возможно, вы могли бы использовать методы getRawHeader() и getRawContent() класса Zend_Mail_Storage_Pop3.Будет ли этого достаточно для вашей цели?

Некоторые документы API (я не нашел их в Справочном руководстве):

...