Nachrichten ist sind in einem beliebigen Baum von Teilen angeordnet, wobei die übergeordneten Elemente vom Typ multipart/* oder message/rfc822 sind und Kinder andere Typen haben. Die FETCH BODY[...]
können beliebige dieser Teile beliebig extrahieren.
Leider gibt es kein Standardlayout für Nachrichten. Sie können den BODYSTRUCTURE-Eintrag abrufen, um das MIME-Layout einer Nachricht abzurufen, aber es ist sehr schwierig, mit dem Auge zu analysieren.
Das gesagt, es gibt ein paar allgemeine Nachrichten-Layouts, die Sie den größten Teil des Weges bekommen.
Am einfachsten ist eine Nachricht mit nur einem Text, entweder text/html oder text/plain. Einfach holen BODY[TEXT]
.
Die nächste ist Multi-Format, mit Text/HTML und Text/Plain. Seine MIME Struktur sieht im Allgemeinen wie folgt aus:
+ multipart/alternative [TEXT]
|- text/plain [1]
\- text/html [2]
In diesem Fall Sie BODY[2]
holen wollen.
Wenn die Nachricht Single-Körper, mit Anhängen, wird es wie folgt aussehen:
+ multipart/mixed or multipart/related [TEXT]
|- text/html or text/plain [1]
|- image/jpg [2]
| ...
\- image/gif
In diesem Fall Sie BODY[1]
wollen.
Zuletzt ist beides: Multi-Format-Körper mit Anhängen. Es wird dazu neigen, etwas zu aussehen:
+ multipart/mixed or multipart/related [TEXT]
|-+ multipart/alternative [1]
| |- text/plain [1.1]
| \- text/html [1.2]
|- image/jpeg [2]
|- image/gif [3]
|...
\- image/png
In diesem Fall werden Sie wahrscheinlich BODY[1.2]
wollen. Ihre Beispielnachricht ist von diesem Typ.
Darüber hinaus können die Körper in Quoted-Printable oder Base64-Codierung codiert werden. Leider bietet Baseline IMAP keine Möglichkeit für den Server, dies für Sie zu dekodieren. Quoted-Printable kann meistens gelesen werden, wenn die Nachricht ascii ist, aber viele
=
Escapes im ganzen Körper haben. Wenn es base64 ist, werden Sie nicht in der Lage sein, es mit dem Auge zu entziffern. Die
BINARY IMAP extension kann dabei helfen, aber das ist nicht weit verbreitet.
Bitte aktualisieren Sie die Frage mit einem Beispieleintrag aus dem tatsächlichen Protokoll und die tatsächliche Ausgabe erwarten Sie – Inian
Ok, ich habe ein Beispiel zur Verfügung gestellt – matiux
Sehen alle Ihre Nachrichten wie dieses Beispiel? – Max