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?