I am sending email using SmtpClient.Send Method, but when I try to send to a non-existent email account, the Send method throws no exception, how can I tell that the recipient mail address is valid, or the mail won't arrive, or detect this issue.
我使用SmtpClient.Send方法发送电子邮件,但是当我尝试发送到不存在的电子邮件帐户时,Send方法不会抛出任何异常,如何判断收件人邮件地址是有效的,还是邮件不会到达,或检测到这个问题。
code:
码:
Properties.Settings appSettings = new Properties.Settings();
MailMessage message = new MailMessage();
message.From = new MailAddress(appSettings.senderMail);
message.Subject = appSettings.mailsubj;
message.Body = appSettings.mailbody;
Attachment attach = new Attachment(sOutput);
message.Attachments.Add(attach);
SmtpClient client = new SmtpClient(appSettings.SMTP);
client.SendCompleted += this.SendCompletedCallback;
foreach (String clientEmail in clientEmailList)
{
message.To.Clear();
message.To.Add(clientEmail);
//client.Send(message);
try
{
client.Send(message);
AddToLog(String.Format("\t{0}{1}", Properties.Resources.ResourceManager.GetString("MAIL_SEND_SUCCESS"), clientEmail));
}
catch (SmtpFailedRecipientException ex)
{
AddToLog(String.Format("\t{0}{1}:\n\t{2}", Properties.Resources.ResourceManager.GetString("MAIL_SEND_ERROR"), clientEmail, ex.Message));
}
catch (SmtpException smtp_Ex)
{
AddToLog(String.Format("\t{0}{1}:\t{2}", Properties.Resources.ResourceManager.GetString("MAIL_SEND_ERROR"), clientEmail, "Cannot connect to SMTP server."));
}
catch (Exception ex)
{
AddToLog(String.Format("\t{0}{1}:\n\t{2}", Properties.Resources.ResourceManager.GetString("MAIL_SEND_ERROR"), clientEmail, ex.Message));
}
// client.SendAsync(message, clientEmail);
}
1 个解决方案
#1
3
When SMTP client sends a message, it doesn't know anything about validity of e-mail address, if this address belongs to the domain, that differs from SMTP server's domain.
当SMTP客户端发送邮件时,它不知道电子邮件地址的有效性,如果该地址属于域,则与SMTP服务器的域不同。
This will be known only after your SMTP server will try to deliver a message to the recipient from another domain. Usually, in this case you'll receive a mail message with error.
只有在您的SMTP服务器尝试从其他域向收件人传递邮件后,才能知道此情况。通常,在这种情况下,您将收到包含错误的邮件。
#1
3
When SMTP client sends a message, it doesn't know anything about validity of e-mail address, if this address belongs to the domain, that differs from SMTP server's domain.
当SMTP客户端发送邮件时,它不知道电子邮件地址的有效性,如果该地址属于域,则与SMTP服务器的域不同。
This will be known only after your SMTP server will try to deliver a message to the recipient from another domain. Usually, in this case you'll receive a mail message with error.
只有在您的SMTP服务器尝试从其他域向收件人传递邮件后,才能知道此情况。通常,在这种情况下,您将收到包含错误的邮件。