2009-04-16 11 views
1

Je travaille sur un projet pour récupérer des courriels à partir d'une boîte aux lettres POP3 et les enregistrer dans une base de données. Je voudrais trouver un moyen de lier les messages originaux aux réponses afin que je puisse les montrer en relation comme une chaîne. J'allais utiliser des lignes d'objet qui ne vont pas être très fiables car ils ont la capacité de changer. Y a-t-il quelque chose sous le capot que je puisse utiliser pour lier un message de réponse à un message original?Recevoir et traiter des courriels de .NET

+0

Hors sujet, mais j'aimerais vraiment que quelqu'un porte Qmail sur C#. C'est le programme de messagerie ultime. – eduncan911

Répondre

0

Les lignes de sujet sont la seule façon universelle dont j'ai peur. Jetez un oeil à Gmail, c'est comme ça qu'ils le font et il peut être trompé dans le filetage des éléments non liés si les sujets sont les mêmes. Je pense que le courrier électronique envoyé par Exchange a une sorte d'ID pour un thread, mais cela ne fonctionne que dans une organisation exécutant un échange, et je suppose qu'il n'est pas fiable si les mails proviennent de l'extérieur de l'organisation.

Vous pouvez essayer de filer en utilisant le sujet et d'appliquer des heuristiques pour séparer les éléments non liés (par exemple, les courriels avec des destinataires complètement différents ne seraient pas liés). Ce n'est pas infaillible cependant.

1

Il peut y avoir un moyen. De nombreux serveurs SMTP comprennent deux têtes dans les messages:

  • Message-ID: ID unique du message en cours
  • In-Reply-To: l'ID de message que le message en cours est en réponse à.

Vous pouvez suivre la chaîne de In-Reply-To identificateurs retour au message d'origine pour trouver l'ensemble de fil de discussion.