Question

J'écris un gestionnaire de tubes d'assistance pour diriger les messages entrants en tant que réponses au ticket du support technique. Certains courriers arrivent parfaitement, d'autres comme un mélange de texte et = les images en 3D sont réunies dans une chaîne géante. Quelqu'un at-il une idée sur la façon de décoder cela en texte brut?

Pour référence, voici ma fonction d'analyse de courrier:

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());
    }
}
Était-ce utile?

La solution

Je suppose que le type de contenu n'est pas spécifié correctement et que Zend ne sait pas le décoder. Je sais que j'ai déjà vu cela auparavant, mais je ne me souviens pas où ni comment cela a été "résolu".

On dirait que les guillemets imprimables sont traités comme du texte brut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top