Zend_Mail ve = 0D = 0A = 3D = 3D = 3D = 3D = 3D

1 Cevap php

Ben masası bilet yanıt olarak boru gelen e-postalara bir yardım masası boru işleyicisi yazıyorum. Bazı e-postalar, gayet geliyor diğerleri metnin karmakarışık olarak geliyor ve 3D = Tum dev bir dizeye munged. Herkes düz metin içine çözmek için nasıl bir fikir var mı.

Referans için, bu benim mail ayrıştırıcı işlevi:

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 Cevap

Ben bir şekilde içerik türü doğru belirtilmemişse ve Zend bunu çözmek için nasıl bilmez bir tahminde alacağım. Ben daha önce gördüm biliyorum, ama nerede ya da nasıl 'çözüldü' oldu ben hatırlamıyorum.

Bu quoted-printable düz metin gibi tedavi gibi görünüyor.