我正在尝试使用以下代码使用c#发送电子邮件.
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);
Run Code Online (Sandbox Code Playgroud)
现在我的函数收到的"toAddress"字符串可能包含一个地址,或者它可能包含许多逗号分隔的地址.
现在的问题是,在多个逗号分隔的地址的情况下,其中一个或两个可能是错误的电子邮件地址格式.
因此,当我尝试使用此代码发送电子邮件时,我得到例外:
"指定的字符串不是电子邮件地址所需的格式."
有没有办法验证逗号分隔的电子邮件地址?我曾在某处读到,验证电子邮件地址的唯一方法是向其发送电子邮件,因为验证电子邮件地址的正则表达式可能会非常庞大.
此外,我无法控制设计,或者地址字符串如何影响我的功能,我无法在UI中添加电子邮件验证,所以我很无奈......
我的问题是电子邮件不会被传递到逗号分隔字符串中的所有地址,即使只有一些地址的格式错误.
有没有办法在.NET中正确验证电子邮件地址?有没有办法清理坏的电子邮件地址并将邮件发送给好的邮件地址?