1

使用 Zend_Mail 发送邮件的文档很棒,但现在接收邮件很痛苦。我目前想要获取电子邮件的纯文本部分和 html 部分。现在我写了一个很长的函数,它遍历各个部分,然后查看标题,看看它是带引号的可打印的还是 base64 的,我必须做很多事情才能获得信息。我是否可能缺少一个可以获取邮件的明文和 html 的功能?

4

2 回答 2

4

AFAIK,MIME 电子邮件对不同部分(HTML、纯文本、嵌入)的顺序没有标准。因此,您必须遍历所有部分并获得所需的部分。

但是因为 Zend_Mail 的结构是递归的,所以迭代应该很容易。也许您可以与我们分享您的代码,以便我们对其发表评论(如果有任何评论)?

于 2009-05-02T07:36:39.477 回答
0

尝试实现这样的事情:

/**
 * Returns the parts with plain text
 *
 * @param Zend_Mail_Message $message
 * @return array of Zend_Mail_Part
 */
public function findTextParts(Zend_Mail_Message $message){

    $result = array();

    foreach (new RecursiveIteratorIterator($message) as $part) {

        $token = strtok($part->contentType, ';');

        if ( $token == 'text/plain') {
            $result[] = $part;
        }

    }

    return $result;

}
于 2013-06-26T07:47:53.947 回答