2012-09-19 9 views
6

Mit IMAP über Telnet, ich möchte in der Lage sein, das Thema aus der angegebenen E-Mail zu extrahieren. Jetzt weiß ich, dass der Befehl fetch dafür zuständig ist, Daten von einer E-Mail abzurufen.IMAP FETCH Thema

Meine Frage ist, wie bekomme ich die Betreffzeile speziell, ohne einen Aufruf an BODY mit [HEADER.FIELDS (SUBJECT)] (was in den Augen des Servers wird ‚öffnen Sie die E-Mail‘ und also setze das/seen-Flag, was ich nicht möchte)

Ich verstehe FETCH FULL gibt die vollständige Kopfzeile zurück, die den Betreff enthält, aber es ist ein Alptraum, durch zu analysieren und könnte mit unsichtbaren Fallstricken gespickt werden, wenn ich es manuell analysiere. Wie würde ich den Server dazu bringen, mir nur das Thema aus dem Header zu geben?

+0

Ich bin bereit, Alternativen zu betrachten, solange der/gesehen Flag nicht gesetzt ist auf Nutzung. – user1433767

Antwort

12

entdeckte ich die Antwort:

BODY.PEEK [HEADER.FIELDS (SUBJECT)]

.PEEK es sagt es nicht öffnen (so/gesehen ist nicht gesetzt).

2

Neben BODY.PEEK können Sie ENVELOPE abrufen, das eine geparste Zusammenfassung vieler Nachrichtenmetadaten bereitstellt.

2

"a1 1 FETCH: * (FLAGS BODY [HEADER.FIELDS (SUBJECT DATE FROM)]) \ r \ n"