Sprawdzanie poprawności adresu e-mail

Próbuję wysłać wiadomość e-mail za pomocą c #, używając następującego kodu.

<code>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);
</code>

Teraz ciąg „toAddress”, który otrzymuje moja funkcja, może zawierać pojedynczy adres lub może mieć wiele adresów rozdzielanych przecinkami.

Problem polega na tym, że w przypadku adresów rozdzielonych przecinkami jeden lub dwa z nich mogą mieć niewłaściwy format adresu e-mail.

Kiedy próbuję wysłać wiadomość e-mail za pomocą tego kodu, otrzymuję wyjątek:

„Podany ciąg nie jest w formie wymaganej dla adresu e-mail”.

Czy istnieje sposób sprawdzenia adresów e-mail rozdzielonych przecinkami? Przeczytałem gdzieś, że jedynym sposobem sprawdzenia adresu e-mail jest wysłanie do niego wiadomości e-mail, ponieważ wyrażenia regularne służące do sprawdzania poprawności adresu e-mail mogą być zaskakująco duże.

Ponadto nie mam kontroli nad projektem ani nad tym, jak ten ciąg adresu przychodzi do mojej funkcji, nie mogę dodać sprawdzania poprawności wiadomości e-mail w interfejsie użytkownika, więc jestem tam bezradny ...

Moim problemem jest to, że e-mail nie zostanie dostarczonyWSZYSTKO adresy w łańcuchu rozdzielanym przecinkami, chociaż tylkoTROCHĘ adresów ma niewłaściwy format.

Czy jest jakiś sposób na poprawne zweryfikowanie adresów e-mail w .NET? Czy istnieje sposób na usunięcie złych adresów e-mail i wysłanie poczty tylko do tych dobrych?

questionAnswers(12)

yourAnswerToTheQuestion