2009-04-27 1 views
1

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

ответ

4

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

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

0

Try реализовать что-то вроде этого:

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

}