Zend_Mail читает почту - PullRequest
       14

Zend_Mail читает почту

1 голос
/ 27 апреля 2009

Документация для отправки писем с Zend_Mail отличная, но получение писем сейчас является проблемой. В настоящее время я хочу получить текстовую часть и HTML-часть письма. Прямо сейчас я написал длинную функцию, которая проходит по частям, а затем просматривает заголовки и проверяет, является ли она печатаемой или base64, и мне нужно сделать очень много, чтобы просто получить информацию. Возможно, мне не хватает функции, с помощью которой я могу просто получить открытый текст и html-адрес нашей почты?

Ответы [ 2 ]

4 голосов
/ 02 мая 2009

AFAIK, электронные письма MIME не имеют стандарта для заказа различных частей (HTML, открытый текст, встраивание). Поэтому вам нужно перебирать все части и получать нужные вам части.

Но поскольку структура Zend_Mail является рекурсивной, итерация должна быть довольно простой. Может быть, вы можете поделиться своим кодом с нами, чтобы мы могли прокомментировать его (если есть что комментировать)?

0 голосов
/ 26 июня 2013

Попробуйте реализовать что-то вроде этого:

/**
 * 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;

}
...