Не совсем ответ на этот вопрос сам по себе, но на тот случай, если кому-то это понадобится, я написал функцию C # для проверки адресов электронной почты с использованием этого метода.
FixEmailAddress("walter@xyz.com")
возвращает "walter@xyz.com"
FixEmailAddress("wa@lter@xyz.com,tom@xyz.com,asdfdsf,vsav-sdfsd@xyz.xyz")
возвращает "tom@xyz.com,vsav-sdfsd@xyz.xyz"
Я обрабатываю списки адресов электронной почты таким образом, потому что разделенный запятыми список адресов электронной почты является допустимым параметром для MailAddressCollection.Add()
/// <summary>
/// Given a single email address, return the email address if it is valid, or empty string if invalid.
/// or given a comma delimited list of email addresses, return the a comma list of valid email addresses from the original list.
/// </summary>
/// <param name="emailAddess"></param>
/// <returns>Validated email address(es)</returns>
public static string FixEmailAddress(string emailAddress)
{
string result = "";
emailAddress = emailAddress.Replace(";",",");
if (emailAddress.Contains(","))
{
List<string> results = new List<string>();
string[] emailAddresses = emailAddress.Split(new char[] { ',' });
foreach (string e in emailAddresses)
{
string temp = FixEmailAddress(e);
if (temp != "")
{
results.Add(temp);
}
}
result = string.Join(",", results);
}
else
{
try
{
System.Net.Mail.MailAddress email = new System.Net.Mail.MailAddress(emailAddress);
result = email.Address;
}
catch (Exception)
{
result = "";
}
}
return result;
}