C#如何在SmtpClient.Send()中识别未知的用户电子邮件地址
我使用以下代码在公司内部通过我们自己的中继服务器发送电子邮件:C#如何在SmtpClient.Send()中识别未知的用户电子邮件地址,c#,smtpclient,mailmessage,C#,Smtpclient,Mailmessage,我使用以下代码在公司内部通过我们自己的中继服务器发送电子邮件: using (MailMessage em = new MailMessage()) { em.From = new MailAddress("noreply@mycompany.com", "From Me"); em.Priority = MailPriority.High; em.IsBodyHtml = true; try { em.
using (MailMessage em = new MailMessage()) {
em.From = new MailAddress("noreply@mycompany.com", "From Me");
em.Priority = MailPriority.High;
em.IsBodyHtml = true;
try {
em.To.Add(new MailAddress("Addy_1@mycompany.com"));
em.To.Add(new MailAddress("Addy_2@mycompany.com"));
:
:
em.To.Add(new MailAddress("Addy_99@mycompany.com"));
}
catch (Exception e) {
Log.Write(e);
}
em.Subject = "My Subject";
em.Body = "Email body";
}
using (SmtpClient smtp = new SmtpClient()) {
smtp.UseDefaultCredentials = true;
smtp.Host = "smtprelay.mycompany.com";
smtp.Send(em);
}
}
如果任何电子邮件不再有效,则在您实际尝试发送()电子邮件之前不会报告任何内容,此时为时已晚,您最终会收到:
Mailbox unavailable. The server response was: 5.1.1 User unknown
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at SendEmail.ProcessRequest(HttpContext context) in C:\inetpub\wwwroot\site\SendEmail.ashx:line 104
有没有办法在收到电子邮件之前进行验证
.To.Add()
似乎不会引发任何警报。或者,一旦失败,有没有办法确定哪个电子邮件地址是坏的?您应该能够尝试/捕获发送方法并捕获SmtpFailedRecipientsException或SmtpFailedRecipientException
单一收件人异常有一个FailedRecipient属性:
您应该能够尝试/捕获Send方法并捕获SmtpFailedRecipientsException或SmtpFailedRecipientException 单一收件人异常有一个FailedRecipient属性:
谢谢。明天早上我会回来做那个项目,我会试一试。很抱歉耽搁了。所以,看起来我是对的,至少你不能在发送之前测试一个电子邮件地址(这是有道理的,真的),但我现在看到,我至少可以确定哪封电子邮件是坏的。谢谢我将把这作为答案。再次感谢你的指导,谢谢。明天早上我会回来做那个项目,我会试一试。很抱歉耽搁了。所以,看起来我是对的,至少你不能在发送之前测试一个电子邮件地址(这是有道理的,真的),但我现在看到,我至少可以确定哪封电子邮件是坏的。谢谢我将把这作为答案。再次感谢你的指导。