IMAP - Wo finde ich den Inhalt einer HTML-Mail?

dku79

Grünschnabel
Hallo zusammen,

ich möchte ein IMAP Postfach mit allen Attachments auslesen und dann die Dateien im Dateisystem speichern.

Klappt soweit alles super... aber bei HTML-E-Mails habe ich Probleme.
Lese die Mails bisher mit folgenden Befehlen aus:

$header = imap_fetchbody($mail,$hole_mail,0,FT_UID);
$body = imap_fetchbody($mail,$hole_mail,1,FT_UID);

Da bekomme ich bei Multiparts-Mails natürlich beide Versionen - Text und HTML. Aber das kann ich mir ja mit 1.1 und 1.2 auslesen.

Zum testen habe ich einige Mails verschickt in txt und htm format.
Und genau bei HTML-Mails (subtype=HTML) habe ich mein Problem. Alle Felder sind leer :-(

Wo finde ich denn meinen HTML text? Und wenn ich mit 1 den Body auslesen will, braucht es superlange. Ich verstehe es einfach nicht.

Vorher lese ich noch mit fetch_structure aus:

type --> 0
encoding --> 0
subtype --> HTML

Wäre super wenn einer nen Tipp hat.
Viele Dank im voraus.
 
Danke erstmal.
An der Stelle habe ich mich auch informiert.


Zusätzliche Informationen - die Mail hat folgende Daten, ohne Anhang...
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 7bit

Ich dekodiere die Datei nicht, versuche sie also nur mit zu holen:
$body = imap_fetchbody($mail,$hole_mail,1,FT_UID);

Was ich aber nun nicht verstehe ist, warum ich nirgendwo meinen Body finden kann - ich würde erwarten, dass er kodiert da wäre.

Und in dieser Struktur ist bei mir alles leer:
0 - Message header
1 - MULTIPART/ALTERNATIVE
1.1 - TEXT/PLAIN
1.2 - TEXT/HTML
2 - MESSAGE/RFC822 (entire attached message)
2.0 - Attached message header
2.1 - TEXT/PLAIN
2.2 - TEXT/HTML
2.3 - file.ext

also wenn ich:
$body = imap_fetchbody($mail,$hole_mail,1,FT_UID);
$body = imap_fetchbody($mail,$hole_mail,1.1,FT_UID);
$body = imap_fetchbody($mail,$hole_mail,1.2,FT_UID);

usw. abfrage...
 
Warum versuchst du es nicht mal mit 2.2? Vielleicht wird die HTML-Mail da angehängt (als Anhang) und nicht im Multipart-Teil?
 
Zurück