2016-06-12 20 views
0

Ich versuche, die Verarbeitung von E-Mail-Nachrichten, die über IMAP abgerufen werden, höchstens einmal zu erreichen. (I asked a related question about it.)Können wir über IMAP abgerufene E-Mails durch Hash deduplizieren?

Ist es zuverlässig, einen kryptografischen Hash-Code der MIME-Nachrichten zu berechnen, die über IMAP abgerufen werden, um sie zu deduplizieren?

Mit anderen Worten, warum würde dieselbe E-Mail zu einem anderen Ergebnis führen, wenn sie mehrmals über IMAP abgerufen wird? Kann eine E-Mail ihren Inhalt ändern, wenn sie zum Beispiel über Ordner hinweg verschoben oder als gelesen oder aus einem anderen Grund markiert wird?

Ich benutze hMailserver unter Windows mit Mailkit.NET als Client. Bin mir nicht sicher, dass das wichtig ist.

+0

Wenn Sie nur den Inhalt hashen, kann dies nicht geändert werden, es können jedoch tatsächliche Duplikate existieren (Nachrichten können in IMAP kopiert werden). Ich denke, Sie sind über das Engineering-Problem, aber die UID sollte ausreichen. – Max

+0

http://crypto.stackexchange.com/questions/2583/is-it-fair-to-assume-that-sha1-collisions-wont-occur-on-a-set-of-100-k-strings/2584 –

Antwort

2

Viele Mailing-Listen fügen eine Fußzeile hinzu, so dass Mail an mich gesendet wird und eine Liste mit zwei verschiedenen Signaturen ankommt.

Die meisten Menschen betrachten dies als eine Nachricht.

Ich empfehle die Verwendung der Message-ID-Header-Feld für höchstens einmal Verarbeitung. AFAICT es ist seit zehn Jahren zuverlässig einzigartig (die letzte Kollision, die ich gesehen habe, war um 2000).

+0

Es Es könnte sich lohnen, das Thema oder ein paar andere Header zu überprüfen, um sicherzustellen, dass es sich nicht um eine Kollision handelt (beachten Sie, dass Mailinglisten manchmal auch "[list-name]" 'dem Subject-Wert vorsetzen). – jstedfast

+0

Ich war besorgt, dass Kunden vielleicht gar keine schicken würden. – boot4life

+0

Kunden haben vor langer Zeit gelernt, dass ihre Mails nicht in Spam-Filter geraten. Spam Assassin hat ein halbes Dutzend Regeln, um zB Mail mit schlechten oder (teilweise) fehlenden Nachrichten-IDs zu vergleichen. – arnt