Frage

Ich habe ein schönes Programm in Java geschrieben, die es zu einem Google Mail-Konto und Download atachments geschickt verbindet. Sobald ein Anhang heruntergeladen wurde, wird sie als gelesen markiert und wird nicht immer wieder heruntergeladen. Dieses Programm wird in mehreren Instanzen mit jedem Programm herunterzuladen einzigartige Anlagen laufen, so dass eine einzelne Anlage wird zweimal nie heruntergeladen. Das Problem ist im Moment, dass, wenn die Anlage eine anständige Größe ist, ein Programm nach wie vor es ist das Herunterladen, wenn eine andere Instanz verbindet und beginnt auch die Anlage herunterzuladen, bevor sie als gelesen markiert wurde.

Ich habe versucht, die Überprüfung und verschiedene Flags Einstellung und Überprüfung, ob der Ordner geöffnet ist, nichts scheint zu funktionieren. Jede Lösung?

Update: Vielen Dank für die schnellen Antworten, leider IMAP aus anderen Gründen keine Option

.
War es hilfreich?

Lösung

Wie die anderen schon erwähnt haben, ist POP3 nicht wirklich für diese Art von Szenario bestimmt.

Wenn Sie unbedingt POP3 verwenden müssen, würde ich vorschlagen, alle E-Mail an einen Zwischenserver herunterzuladen, die die Nachrichten sortiert und macht sie für jeden der anderen Clients zur Verfügung.

Es klingt wie Sie nur versuchen, die Verarbeitung der E-Mails zu verteilen. Wenn das der Fall ist, können Sie einfach jeder Client zu Ihrem Zwischen Server verbinden die nächste verfügbare Nachricht abzurufen.

Ich bin mir nicht sicher, was Ihre Zwänge sind, aber Sie können auch die Anhänge auf eine andere Weise neben E-Mail zu prüfen, zu empfangen. Wenn die Leute Dateien hochladen, können Sie ein Web-Formular einrichten, die automatisch jede Datei auf die nächste verfügbare Instanz Ihrer Anwendung zur Verarbeitung sendet.

Andere Tipps

Betrachten IMAP statt -. Es für die Client-Server-Interaktion ausgelegt ist,

RFC1939 (Post Office Protocol - Version 3):

  

POP3 ist nicht beabsichtigt, zur Verfügung zu stellen   umfangreiche Manipulationen von   Mail auf dem Server; Normalerweise ist mail   heruntergeladen und anschließend gelöscht. Eine fortgeschrittenere (und komplexe) -Protokoll, IMAP4, wird diskutiert in RFC1730 .

Ich glaube nicht, POP3 wird für mehr gleichzeitige Zugriff.

Stellen Sie sich diese:? Habe ich die gleiche Mailbox wirklich mehrere Prozesse benötigen Zugriff

Wenn Sie das tun, werden Sie einen Weg finden müssen, um diese Prozesse miteinander kommunizieren zu lassen. Verwenden Sie eine gemeinsame Datenbank oder Serverprozess Aktionen zu koordinieren.

IMAP hat mehr Möglichkeiten haben, aber ich bin nicht sicher, ob Sie können „sperren“ eine einzelne Mail zu markieren, wie verarbeitet werden.

Wenn Sie mit einer POP3-Verbindung bleiben müssen, könnten Sie zuvor heruntergeladenen Nachrichten-IDs eine lokale Datenbank halten. Dann könnten neue Instanzen gegen das überprüfen, bevor erneut herunterzuladen. Die beste Lösung ist nur IMAP zu verwenden, obwohl, wie IMAP in der Lage, die gelesen / ungelesen Flags setzen vor dem Download.

Sie können die E-Mail markieren, wie vor dem Download zu lesen, und starten Sie dann herunterladen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top