2009-04-16 12 views
1

Ich arbeite an einem Projekt, um E-Mails von einem POP3-Postfach abzurufen und diese in einer Datenbank zu speichern. Ich möchte einen Weg finden, wie ich Originalnachrichten mit Antworten verknüpfen kann, damit ich sie relational als Kette darstellen kann. Ich würde Betreffzeilen verwenden, die nicht sehr zuverlässig sind, da sie die Fähigkeit haben, sich zu ändern. Gibt es etwas unter der Haube, das ich verwenden kann, um eine Antwortnachricht mit einer ursprünglichen Nachricht zu verknüpfen?Empfangen/Verarbeiten von E-Mails von .NET

+0

Off Thema, aber ich wünschte wirklich jemand würde Qmail über C# portieren. Das ist das ultimative Mailprogramm. – eduncan911

Antwort

0

Betreffzeilen sind die einzige universelle Möglichkeit, fürchte ich. Werfen Sie einen Blick auf GMail, so machen sie es und es kann dazu verleitet werden, nicht zusammenhängende Elemente zu fädeln, wenn die Themen die gleichen sind.

Ich denke, E-Mail von Exchange gesendet hat eine Art ID für einen Thread, aber das funktioniert nur in einer Organisation Austausch, und ich vermute, es ist nicht zuverlässig, wenn Mails von außerhalb der Organisation kommen.

Sie könnten versuchen, den Betreff zu verwenden und einige Heuristiken anwenden, um nicht zusammenhängende Elemente zu trennen (z. B. E-Mails mit völlig unterschiedlichen Empfängern wären nicht verwandt). Es ist jedoch nicht narrensicher.

1

Es mag einen Weg geben. Viele SMTP-Server sind zwei Header in den Nachrichten:

  • Message-ID: Die eindeutige ID der aktuellen Nachricht
  • In-Reply-To: die Nachrichten-ID, die die aktuelle Nachricht in Antwort ist zu.

Sie konnten die Kette von In-Reply-To Bezeichner zurück auf die ursprüngliche Nachricht folgen den gesamten E-Mail-Thread zu finden.