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!