이 코드가 있습니다. 예 : Zend Reading Mail입니다.왜이 메일 메시지가 제대로 디코딩되지 않습니까?
$message = $mail->getMessage(1);
// output first text/plain part
$foundPart = null;
foreach (new RecursiveIteratorIterator($mail->getMessage(1)) as $part) {
try {
if (strtok($part->contentType, ';') == 'text/plain') {
$foundPart = $part;
break;
}
} catch (Zend_Mail_Exception $e) {
// ignore
}
}
if (!$foundPart) {
echo 'no plain text part found';
} else {
echo $foundPart->getContent();
}
메시지가 제대로 작동합니다. 그러나 메시지를 읽을 수있는 것으로 디코딩하려고 시도해도 작동하지 않습니다. Zend_Mime, imap_mime 및 iconv를 사용해 보았습니다.
이
은 = 지금까지 가가 이은 내가 원하는 것 것은 그냥 "안녕의 heimúr"입니다
그것은 말을해야 내가 $foundPart->getContent();
홀 = F3의 하임으로 무엇을 얻을의 예입니다 라이브러리에서 실제로 "버튼을 누르고 베이컨을받을 수"있습니다. 즉, 라이브러리를 POP3 전자 메일 상자로 지정하고 전자 메일을 읽을 수있는 형식 (인코딩 문제없이) 및 첨부 파일로 가져 오려고합니다.
imap_mime_header_decode()
동일한 데이터가있는 배열을 제공합니다.
iconv_ mime_ decode()
누군가가 이런 일이 왜 어떤 아이디어 나 난 도망이 단지 추상적 (PHP/파이썬이나 펄)
imap_qprint()가 트릭이었다. 감사합니다 :) –
그것은 base64로 인코딩되지 않았습니다. 인용 부호가있는 인쇄 가능 : http://en.wikipedia.org/wiki/Quoted-printable –
Pawel이 맞습니다. 대답은 간단하지 않습니다. 보다 완벽한 해결책은 내 대답을 참조하십시오. – Andrew