Lo so, ce ne sono un sacco, ma mi segno questo in quanto l'autore promette che è il migliore che ci sia rispetto a tanti in giro...
using System.Text.RegularExpressions;
public static class TestEmail
{
public const string MatchEmailPattern =
@"^(([a-zA-Z0-9]+[\w-]*\.)*([a-zA-Z]{1}[\w-]*|[\w-]{2,}))@"
+ @"((([0-1]?[0-9]{1,2}|2{1}[0-5]{2})\.([0-1]?[0-9]{1,2}|2{1}[0-5]{2})\.([0-1]?[0-9]{1,2}|2{1}[0-5]{2})\.){1}|"
+ @"(([a-zA-Z]+[\w-]*\.)+))([a-zA-Z]{2,4}|([0-1]?[0-9]{1,2}|2{1}[0-5]{2}))$";
public static bool IsEmail(string email)
{
if (email != null) return Regex.IsMatch(email, MatchEmailPattern);
else return false;
}
}