2009-03-27 1 views
1

Ich schreibe einen POP3-Mail-Client. Ich möchte die Nachrichten auf dem Server belassen, möchte aber nicht jedes Mal, wenn ich die Verbindung wieder herstelle, alle Nachrichten erneut herunterladen.Ermöglicht das POP3-Protokoll die Angabe einer Teilmenge von E-Mails zum Herunterladen?

Wenn ich heute alle Nachrichten herunterlade und die Verbindung morgen wieder herstelle, unterstützt das Protokoll die Möglichkeit, nur die Nachrichten der letzten 24 Stunden oder von einer bestimmten sequenziellen ID herunterzuladen? Oder muss ich alle Nachrichten erneut herunterladen?

Ich bin mir der Unique IDentification Listing-Funktion bewusst, aber laut http://www.faqs.org/rfcs/rfc1939.html wird dies in der ursprünglichen Spezifikation nicht unterstützt. Unterstützen die meisten Mailserver diese Funktion?

Ja, mein Client unterstützt IMAP auch, aber diese Frage ist speziell für die POP-Server.

+0

Warum bestehen die Leute immer noch darauf, POP in 2009 zu verwenden? –

Antwort

1

Ich habe es getan.

Sie müssen alle Header erneut lesen, aber Sie können entscheiden, welche Nachrichten heruntergeladen werden sollen.

Ich erinnere mich nichts in der Kopfzeile, die Ihnen einen idiotensicheren Zeitstempel jedoch geben wird. Ich glaube nicht, dass Ihre Lösung möglich ist, ohne eine Aufzeichnung dessen zu führen, was Sie bereits gesehen haben.

(In meinem Fall war mir egal - ich war einfach in der Kopfzeile für Nachrichten mit bestimmten Erkennungsmerkmale suchen -. Die Nachrichten heruntergeladen wurden, verarbeitet und getötet, alles andere war unberührt)

I frage mich auch, ob Sie das Protokoll missverstehen. Nur weil Sie eine Nachricht herunterladen, heißt das nicht, dass sie vom Server entfernt wurde. Es wird nur vom Server entfernt, wenn Sie einen expliziten Befehl zum Beenden der Nachricht geben. (Und wenn eine Nachricht so viele Anhänge enthält, dass die System-Timeouts vor der ordnungsgemäßen Abmeldung wegfallen und somit Ihr Kill-Befehl verworfen wird, werden Sie die Wand hochgefahren!) (Es war ein Versehen im Design. Die ursprüngliche Logik war hänge eine Datei über 100k an, oder so viele wie möglich, deren Gesamtwert unter 100k lag.Eine andere Aufgabe löste tausende von Dateien mit jeweils ungefähr 100 Bytes aus.Während es eine vollkommen legitime, wenn auch extreme, E-Mail war, war nichts in der Lage, sie zu töten !)

Also, wenn ich einen Mail-Client schreiben würde, würde ich einfach alles herunterladen, was ich nicht schon lokal hatte. Wenn es auf dem Server bleiben soll, in Ordnung, gib einfach nicht den Befehl kill.

0

Die Art, die ich in der Vergangenheit gesehen habe, ist auf einer Client-für-Client-Basis. Wenn ich beispielsweise Scribe verwende, um E-Mails auf einem Computer ohne Löschen zu erhalten, und dann auf einen anderen Computer umziehe, werden alle E-Mails erneut heruntergeladen, obwohl ich sie schon einmal gesehen habe. Intern stelle ich mir vor, dass der Client über eine Tabelle verfügt, in der gespeichert wird, ob zuvor eine E-Mail heruntergeladen wurde.

Es gibt nichts in dem Protokoll, das mir bewusst ist, dass das zulassen würde.

3

Haben Sie über die Verwendung von IMAP nachgedacht?

Verwandte Themen