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?