سؤال

وأنا أكتب مكتب مساعدة معالج الأنابيب إلى أنابيب رسائل البريد الإلكتروني الواردة كما رد تذكرة مكتب المساعدة. بعض رسائل البريد الإلكتروني تأتي في غرامة تماما، والبعض الآخر يأتي في كما خليط من النص و= في 3D munged جميعا في سلسلة واحدة عملاقة. هل لديها فكرة عن كيفية فك ذلك في نص عادي.

لمرجعية، وهذا هو بلدي وظيفة محلل الإلكتروني:

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());
    }
}
هل كانت مفيدة؟

المحلول

وأنا سآخذ تخمين بطريقة أو بأخرى لم يتم تحديد نوع المحتوى بشكل صحيح وزند لا يعرف كيفية فك ذلك. وأنا أعلم أنني قد رأيت هذا من قبل، ولكن لا أستطيع أن أتذكر أين أو كيف كان 'حل' عليه.

ويبدو ان نقلت للطباعة يعامل مثل نص عادي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top