Validando um endereço de email

Eu estou tentando enviar um email usando c # usando o seguinte código.

<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>

Agora, a string "toAddress" que minha função recebe pode conter um único endereço, ou pode ter muitos endereços delimitados por vírgulas.

Agora, o problema é que, no caso de vários endereços delimitados por vírgulas, um ou dois deles podem ter o formato de endereço de email incorreto.

Então, quando tento enviar um email usando esse código, recebo a exceção:

"A string especificada não está no formato requerido para um endereço de e-mail."

Existe alguma maneira de validar os endereços de e-mail delimitados por vírgulas? Eu li em algum lugar que a única maneira de validar um endereço de e-mail é enviar um e-mail para ele, porque as expressões regulares para validar um endereço de e-mail podem ser surpreendentemente grandes.

Além disso, eu não tenho controle sobre o design, ou sobre como essa string de endereço chega à minha função, não posso adicionar a validação de email na interface do usuário, então estou desamparado lá ...

Meu problema é que o email não será entregue paraTODOS os endereços na string delimitada por vírgula, embora apenasALGUNS dos endereços são do formato errado.

Existe alguma maneira de validar corretamente os endereços de e-mail no .net? Existe uma maneira de eliminar os endereços de e-mail incorretos e enviar o e-mail apenas para os bons?

questionAnswers(12)

yourAnswerToTheQuestion