Zend_Mail и = 0D = 0A = 3D = 3D = 3D = 3D = 3D - PullRequest
5 голосов
/ 26 ноября 2009

Я пишу обработчик канала службы поддержки, чтобы направлять входящие электронные письма как ответы службы поддержки. Некоторые электронные письма поступают совершенно нормально, другие приходят в виде беспорядочного текста, а трехмерные объекты объединяются в одну гигантскую строку. У кого-нибудь есть идея, как декодировать это в простой текст.

Для справки, это моя функция парсера почты:

public function parseEmailMessage(Zend_Mail_Message $msg)
{
    if ($msg->isMultiPart()) {
        $arrAttachments = array();
        $body = '';
        // Multipart Mime Message
        foreach (new RecursiveIteratorIterator($msg) as $part) {
            try {

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

                // Parse file name
                preg_match('/name="(?<filename>[a-zA-Z0-9.\-_]+)"/is', $part->contentType, $attachmentName);

                // Append plaintext results to $body
                // All other content parts will be treated as attachments
                switch ($mimeType) {
                    case 'text/plain':
                        $body .= trim($part->getContent()) . "\n";
                        break;
                    case 'text/html':
                        $body .= trim(strip_tags($part->getContent));
                        break;
                    default:
                        $arrAttachments[] = array(
                            'attachment_mime' => $mimeType,
                            'attachment_name' => $this->filterFileName($attachmentName['filename']),
                            'base64data' => trim($part->getContent())
                        );
                }

            } catch (Zend_Mail_Exception $e) {
                // ignore
            }
        }

        return array($body, $arrAttachments);
    } else {
        // Plain text message
        return array(trim($msg->getContent()), array());
    }
}

1 Ответ

5 голосов
/ 26 ноября 2009

Полагаю, что каким-то образом тип содержимого указан неверно, и Zend не знает, как его декодировать. Я знаю, что видел это раньше, но я не могу вспомнить, где или как это было «решено».

Похоже, что цитируемая печать обрабатывается как обычный текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...