Ciao,
la cosa non è molto semplice, perchè l'email è uno dei protocolli meno "deterministici" del mondo penso... ossia ogni client di posta se la fa un po' come vuole, ci sono degli standard ma spessissimo ci sono delle eccezioni, tipo campi vuoti o scritti dentro ad altri etc...insomma è da usare un po' di cautela...
Cmq poi provare con qualcosa di questo tipo:
public class EmailParser
{
string eml = "";
public EmailParser(string eml)
{
this.eml = eml;
}
private string from;
public string From
{
get {
if(string.IsNullOrEmpty(this.from))
{
Regex regex = new Regex("From:(.*)", RegexOptions.Multiline);
if(regex.IsMatch(eml))
{
from = regex.Match(eml).Groups[1].Value;
}
}
return from;
}
}
..... via via tutte le altre proprietà
}
magari ti basi sulla RFC per trovare tutte le varie parti (From,Subject etc...):
http://www.w3.org/Protocols/rfc822/
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo