これらの電子メールアドレスを本当にフィルタリングする必要がある場合は、ここにある小さなユーティリティを使用できます。このユーティリティは、正規表現を使用して電子メールアドレスを検証します。これは.Net4.0バージョンであることに注意してください。4.5では少し異なります。
using System;
using System.Globalization;
using System.Text.RegularExpressions;
public class RegexUtilities
{
bool invalid = false;
public bool IsValidEmail(string strIn)
{
invalid = false;
if (String.IsNullOrEmpty(strIn))
return false;
// Use IdnMapping class to convert Unicode domain names.
strIn = Regex.Replace(strIn, @"(@)(.+)$", this.DomainMapper);
if (invalid)
return false;
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn,
@"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
@"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$",
RegexOptions.IgnoreCase);
}
private string DomainMapper(Match match)
{
// IdnMapping class with default property values.
IdnMapping idn = new IdnMapping();
string domainName = match.Groups[2].Value;
try {
domainName = idn.GetAscii(domainName);
}
catch (ArgumentException) {
invalid = true;
}
return match.Groups[1].Value + domainName;
}
}
それ以外の場合、ユーザー登録の場合、私は通常、電子メールの検証に依存します。つまり、システムはユーザーにリンク付きの電子メールを送信するため、リンクをクリックすると、電子メールアドレスが本物であることが検証されます。
有効なメールアドレスが実際のメールアドレスではない可能性があります。言い換えれば、それは完全な検証システムに合格するかもしれませんが、それが存在することを保証するものではありません。