Freigeben über


Analysieren des Nachrichtendownloadverlaufs für ein POP3-Konto

In diesem Thema wird die Struktur des POP3-BLOBs beschrieben, das den Nachrichtendownloadverlauf eines POP3-Kontos darstellt, um die Nachrichten zu identifizieren, die für dieses Konto heruntergeladen oder gelöscht wurden.

Warum sollte der Downloadverlauf der Nachricht analysiert werden?

Mit dem POP-Anbieter (Post Office Protocol) für Outlook können Benutzer neue E-Mail-Nachrichten auf ihrem lokalen Gerät abrufen und herunterladen und anschließend diese E-Mail-Nachrichten auf dem E-Mail-Server belassen oder löschen. Wenn der E-Mail-Client sucht, ob neue Nachrichten heruntergeladen werden sollen, muss er nur die neuen Nachrichten für diesen Posteingang identifizieren und herunterladen können. Der E-Mail-Client verwendet dazu zunächst den Befehl UIDL (Unique ID Listing), um eine Zuordnung jeder Nachricht abzurufen, die jemals an diesen Posteingang an einen eindeutigen Bezeichner (UID) übermittelt wurde. Der Client ruft auch den Nachrichtendownloadverlauf für Nachrichten ab, die für den Posteingang auf diesem Client heruntergeladen oder gelöscht wurden. Mithilfe der Meldungs-UID-Zuordnung und des Downloadverlaufs kann der Client dann die Nachrichten identifizieren, die im Verlauf nicht vorhanden sind, als neu und daher heruntergeladen werden sollten.

So rufen Sie den Verlauf des Nachrichtendownloads für einen Posteingang ab:

POP-BLOB-Struktur

Die POP-BLOB-Struktur, wie in Tabelle 1 beschrieben, beginnt mit den zwei Feldern Version und Count, gefolgt von einer Anzahl von Anzahl von Ressourcentags, von denen jedes null-terminiert ist.

Tabelle 1. Struktur des BLOB, das den Nachrichtendownloadverlauf eines POP3-Kontos darstellt

Feld in BLOB Größe Beschreibung
Version
2 Bytes
Muss 3 (PBLOB_VERSION_NUM) sein.
Count
2 Bytes
Die Anzahl der Ressourcentags in diesem BLOB.
Ressourcentag
Variable
0 oder mehr NULL-terminierte UTF-8-Zeichenfolgen, die die Ressourcentags codieren. Die Anzahl der mit NULL beendeten Zeichenfolgen muss mit Count übereinstimmen.

Jedes Ressourcentag gibt den Vorgang an, der auf eine Nachricht angewendet wird, einige Datums-/Uhrzeit-Metadaten zum Vorgang und codiert die UID der Nachricht. Das Format einer Ressourcentagzeichenfolge ist wie folgt unterteilt und wird in Tabelle 2 näher erläutert.

Ocyyyymmddhhmmssuuu...

Tabelle 2. Struktur eines Ressourcentags

Feld in einem Ressourcentag Größe Beschreibung
O
1 Zeichen
Der Vorgang, der für die E-Mail-Nachricht ausgeführt wird. Der Wert muss "+", "-" oder "&" sein, was auf einen erfolgreichen Get-, Delete- bzw. Get-and-Delete-Vorgang hinweist.
c
1 Zeichen
Der Teil des Nachrichteninhalts, der an dem Vorgang beteiligt ist. Der Wert muss "", "h" oder "b" sein, was den Inhalt von "none", "header" oder "body" angibt.
yyyy
4 Zeichen
Das vierstellige Jahr des Vorgangs.
MM
2 Zeichen
Der zweistellige Monat des Vorgangs.
dd
2 Zeichen
Der zweistellige Tag des Vorgangs.
hh
2 Zeichen
Die zweistellige Stunde des Vorgangs.
mm
2 Zeichen
Die zweistellige Minute des Vorgangs.
ss
2 Zeichen
Die zweistellige Sekunde des Vorgangs.
uuu…
Variable Länge
Die codierte UID einer Nachricht.

Beispiel

Abbildung 1 zeigt ein Beispiel für ein BLOB, das den Nachrichtendownloadverlauf eines POP-Kontos darstellt.

Abbildung 1: Beispiel-BLOB-Struktur für den Nachrichtendownloadverlauf eines POP3-Kontos

BLOB für Nachrichten-Downloadverlauf von POP3-Konto

Basierend auf der in Tabelle 1 und Tabelle 2 beschriebenen Struktur stellt dieses BLOB den Downloadverlauf von 23 E-Mail-Nachrichten dar.

Um die unformatierte UID in jedem Ressourcentag zu analysieren, beachten Sie, dass die UID dieser Codierung folgt: Zeichen in einer UID sind meist alphanumerische Zeichen, und jedem nicht alphanumerischen Zeichen wird das ASCII-Zeichen "$" (0x24) vorangestellt. Die ASCII-Zeichen $2d stellen also das nicht alphanumerische Zeichen "-" dar. Abbildung 2 zeigt ein Beispiel für die erste Konvertierung der unformatierten UID im Ressourcentag 1 in die ASCII-Darstellung und anschließendes Konvertieren eines nicht alphanumerischen Zeichens, dem "$" vorangestellt ist, um die tatsächliche UID zu erzeugen:

0BC535DB-EA63-11E1-A75C-00215AD7BB74

Abbildung 2: Konvertieren der unformatierten UID in einem Ressourcentag in die tatsächliche Meldungs-UID

Konvertieren der Roh-UID in BLOB in tatsächliche Nachrichten-UID

So interpretieren Sie das Ressourcentag 1 in diesem BLOB: Die Nachricht mit der UID 0BC535DB-EA63-11E1-A75C-00215AD7BB74 wurde am 6. September 2012 um 13:11:38 Erfolgreich abgerufen.

Auf ähnliche Weise können Sie die verbleibenden 22 Ressourcentags für dieses BLOB analysieren.

Siehe auch