2009-08-14 1 views
0

Ich habe diese Frage in einem anderen Beitrag hier auf SO gestellt:Wie kann ich E-Mails mit IMAP filtern und ändern?

How can a read receipt be suppressed?

Ich habe einige der Forschung meiner eigenen getan, dieses Problem und den Zugriff auf die E-Mail-Konto, um zu versuchen und zu lösen via IMAP scheint, wie es ist wird eine gute Lösung sein. Ich konnte erfolgreich auf meinen eigenen Posteingang zugreifen und Nachrichten ohne Probleme als gelesen markieren.

Ich wurde gebeten, die gleiche Aufgabe in einem Posteingang durchzuführen, der über 23.000 E-Mails enthält. Ich möchte den Test für eine kleine Anzahl von E-Mails aus diesem Posteingang ausführen, bevor ich die ganzen 23.000 davon bekommen lasse.

LOGIN [email protected] password 
SELECT Inbox 
STORE 1:* flags \Seen 'this line marks all the emails as read 

Also meine Frage ist, wie kann ich das STORE Befehl auf eine bestimmte Gruppe von E-Mails ausführen ... sagen E-Mails, die/wollen:

Hier ist der Code, den ich über Telnet läuft seit von einem bestimmten Konto kommen? Gibt es eine Möglichkeit, die Befehle wie eine FETCH dann die STORE zu verketten? Oder gibt es eine bessere Möglichkeit, eine Sammlung von E-Mails nach bestimmten Kriterien zu erhalten und dann NUR die E-Mails zu ändern, die über IMAP durchgeführt werden können?

Antwort

1

Schauen Sie sich den Befehl IMAP SEARCH an. Die Syntax ist wirklich schrecklich, aber Sie können nach Empfängern oder Absendern suchen, nach bestimmten Wörtern im Betreff oder Nachrichtenkörper. Es wird Ihnen eine Liste von Nachrichten-IDs geben, und Sie können diese Nachrichten-IDs in Ihrem Anruf an STORE verwenden.

+0

kann ich die Ergebnisse des Befehls SEARCH dem Befehl STORE zuführen? Ich hoffte, den STORE-Befehl auf ein paar hundert E-Mails auszuführen, die entweder von einem bestimmten Benutzer stammten oder in einen bestimmten Datumsbereich fielen ... würde ein kleines Programm schreiben, um die Ergebnisse des SEARCH-Befehls zu erhalten und über iterieren Die Ergebnisse, die den STORE-Befehl für jede zurückgegebene ID aufrufen, sollten etwas sein, was ich in Erwägung ziehen sollte? – swolff1978

+0

Natürlich! Ich würde das nicht über Telnet machen und du kannst nicht etwas zu dem Effekt von "STORE SUCHE foo bar" sagen. Sie benötigen eine Möglichkeit, das Ergebnis von SEARCH vorübergehend zu speichern, um es in STORE zu speichern. – innaM

+0

Manni - Noch eine dumme Frage. Wie sollte ich die Verbindung herstellen, wenn nicht über Telnet? (mit asp.net) System.Net.Sockets.TCPClient? – swolff1978