Я пытаюсь отправить электронное письмо с помощью С#, используя следующий код.
MailMessage mail = new MailMessage();
mail.From = new MailAddress(fromAddress, friendlyName);
mail.To.Add(toAddress);
mail.CC.Add(ccAddress);
//set the content
mail.Subject = emailSubject;
mail.Body = emailHeader + "\n" + emailBody;
//send the message
SmtpClient smtp = new SmtpClient(ServerAddress);
smtp.Credentials = CredentialCache.DefaultNetworkCredentials;
mail.IsBodyHtml = true;
smtp.Send(mail);
Теперь строка "toAddress", которую получает моя функция, может содержать один адрес или может содержать много адресов с разделителями-запятыми.
Теперь проблема заключается в том, что в случае нескольких адресов с разделителями-запятыми один или два из них могут иметь неправильный формат адреса электронной почты.
Поэтому, когда я пытаюсь отправить электронное письмо с помощью этого кода, я получаю исключение:
"Указанная строка не в форме, необходимой для адреса электронной почты."
Есть ли способ проверить адреса электронной почты с разделителями-запятыми? Я где-то читал, что единственный способ проверить адрес электронной почты - отправить ему электронное письмо, потому что регулярные выражения для проверки дополнения электронной почты могут быть неожиданно огромными.
Кроме того, у меня нет контроля над дизайном или от того, как эта строка адреса приходит к моей функции, я не могу добавить проверку подлинности в пользовательском интерфейсе, поэтому я беспомощна там...
Моя проблема заключается в том, что письмо не будет доставлено в ВСЕ адреса в строке с разделителями-запятыми, даже если только НЕКОТОРЫЕ из адресов имеют неправильный формат.
Есть ли способ правильно проверить адреса электронной почты в .NET? Есть ли способ отсеять неправильные адреса электронной почты и отправлять почту только хорошим?