使用 Zend_Mail 获取邮件源
Posted
技术标签:
【中文标题】使用 Zend_Mail 获取邮件源【英文标题】:Get mail source using Zend_Mail 【发布时间】:2011-11-02 12:32:10 【问题描述】:如何使用 Zend_Mail (POP3) 获取邮件源(标题、正文、边界 - 全部作为纯文本)。
它默认返回解析的部分,我需要原始消息源。
【问题讨论】:
【参考方案1】:Zend Mail 中没有这种方法。
但你可以查看类源,看看如何直接向邮件服务器发送命令以获取消息源。
【讨论】:
【参考方案2】:也许您可以使用Zend_Mail_Storage_Pop3
类的getRawHeader()
和getRawContent()
方法。是否足以满足您的目的?
Some API docs(我在参考指南中没有找到):
【讨论】:
【参考方案3】:如果你有 Zend_Mail 实例,你可以得到解码后的内容:
/** @var $message Zend_Mail */
echo $message->getBodyText()->getRawContent();
【讨论】:
【参考方案4】:我为此制作了自己的图层:
/**
* 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 获取邮件源的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Zend_Mail、sendmail 和 localhost 发送电子邮件?