Tout d'abord, c'est une tâche délicate.
Vous devez collecter les réponses typiques de différents clients de messagerie et préparer des expressions régulières correctes (ou autre) pour les analyser. J'ai recueilli des réponses d'Outlook, de Thunderbird, de Gmail, d'Apple Mail et de mail.ru.
J'utilise des expressions régulières pour analyser la réponse de la manière suivante: si l'expression ne correspond pas, j'essaie d'utiliser la suivante.
new Regex("From:\\s*" + Regex.Escape(_mail), RegexOptions.IgnoreCase)
new Regex("<" + Regex.Escape(_mail) + ">", RegexOptions.IgnoreCase)
new Regex(Regex.Escape(_mail) + "\\s+wrote:", RegexOptions.IgnoreCase)
new Regex("\\n.*On.*(\\r\\n)?wrote:\\r\\n", RegexOptions.IgnoreCase | RegexOptions.Multiline)
new Regex("-+original\\s+message-+\\s*$", RegexOptions.IgnoreCase)
new Regex("from:\\s*$", RegexOptions.IgnoreCase)
Pour supprimer la citation à la fin:
new Regex("^>.*$", RegexOptions.IgnoreCase | RegexOptions.Multiline);
Voici ma petite collection de réponses aux tests (échantillons divisés par --- ):
From: test@test.com [mailto:test@test.com]
Sent: Tuesday, January 13, 2009 1:27 PM
----
2008/12/26 <test@test.com>
> text
----
test@test.com wrote:
> text
----
test@test.com wrote: text
text
----
2009/1/13 <test@test.com>
> text
----
test@test.com wrote: text
text
----
2009/1/13 <test@test.com>
> text
> text
----
2009/1/13 <test@test.com>
> text
> text
----
test@test.com wrote:
> text
> text
<response here>
----
--- On Fri, 23/1/09, test@test.com <test@test.com> wrote:
> text
> text
Meilleures salutations, Oleg Yaroshevych