PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   imap_body gibt (http://www.selfphp.de/forum/showthread.php?t=25089)

elkmod 14.10.2013 18:11:09

imap_body gibt
 
Guten Tag zusammen!

Ich versuche erstmal den Rahmen meines Problems zu schildern: Es geht darum mittels der imap-Funktionen einen Mailfach auszlesen und die Mails auf eine Kodierung und einen Zeichensatz zu bringen. Dazu habe ich zunächst mittels regex (ich bin Anfänger was das angeht) die Kodierung ermittelt -

PHP-Code:

$pattern "/\w*(Content-Transfer-Encoding: )(.+)\w*/i"

- um dementsprechend den Text zu dekodieren. Jedoch hat der Ausdruck nicht auf jeden Mailkörper gematcht, obwohl der zugehörige Header eine entsprechende Zeile enthielt.

Daraufhin hab ich mir bei den Fällen in denen es nicht funktionierte über imap_body den gesamten Mailkörper ausgeben lassen. Dabei viel mir auf, dass die Nachricht in diesen Fällen tatsächlich keinen Header mit entsprechender Encoding-Deklaration enthielt, was ja zumindest für meinen regulären Ausdruck spricht.

Wenn ich die gleichen Mails jedoch mit einem anderen Client öffne haben sie sehr wohl einen Header. Meine Frage ist nun, wie es kommt, dass imap_body manchmal nicht den ganzen Körper der Nachricht ausgibt?

Danke für alle Antworten im Vorraus!

urvater 15.01.2014 12:51:53

AW: imap_body gibt
 
Ist zwar schon länger her aber ich glaube das Problem zu sehen.
Zitat:

imap_body() liefert eine 1:1 Kopie des gesamten Nachrichtenkörpers. Um einzelne Teile einer mehrteiligen MIME-kodierten Nachricht auszulesen müssen Sie zunächst die Struktur der Nachricht mit imap_fetchstructure() analysieren um anschließend einzelne Komponenten mit imap_fetchbody() anzufordern.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:09:23 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.