检查电子邮件的失败响应
Check failure response of email
如何使用 Asp.Net 检查电子邮件发送方法中的失败响应。
问题是我没有得到失败异常。
请提出更好的方法。
这是我的代码,我正在尝试访问电子邮件失败异常...
public static bool sendMail(string strTo, string strSubject, string strName, string strbody)
{
try
{
strName = strName == "" ? "Sir/Madam" : ("Dear " + strName + ",");
StringBuilder mailbody = new StringBuilder();
SmtpClient mailClient = null;
MailMessage message = null;
mailClient = new SmtpClient();
message = new MailMessage();
mailClient.Host = ConfigurationManager.AppSettings["SMTP_MAIL_SERVER"];
mailClient.Port = int.Parse(ConfigurationManager.AppSettings["PORT"]);
//network credentials
string strMailUserName = ConfigurationManager.AppSettings["FROM_ADDR"];
string strMailPassword = ConfigurationManager.AppSettings["FROM_ADDR_PASS"];
string strWebSiteURL = ConfigurationManager.AppSettings["LinkTosite"];
mailClient.EnableSsl = true;
System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(strMailUserName, strMailPassword);
mailClient.UseDefaultCredentials = true;
mailClient.Credentials = SMTPUserInfo;
string strFromMail = ConfigurationManager.AppSettings["FROM_ADDR"];
MailAddress fromAddress = new MailAddress(strFromMail, "TEST (Administrator)");
message.From = fromAddress;
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure | DeliveryNotificationOptions.OnSuccess;
//to mail address
message.To.Add(strTo);
message.Subject = "ChatOnGo : " + strSubject;
//mailbody.AppendFormat("<link href='" + strWebSiteURL + "admin/css/bestlogin.css' rel='stylesheet' type='text/css' />");
mailbody.AppendFormat("<div class='dlogin_bg'><div class='dlogin_bg_top'></div><div class='dlogin_bg_bottom'><h2>" + strName + "</h2>");
mailbody.AppendFormat(strbody);
mailbody.AppendFormat("<br/><br/><span>Regards,<br /><a href='" + strWebSiteURL + "'>ChatOnGo Admin</a></span></div></div>");
message.Body = mailbody.ToString();
message.IsBodyHtml = true;
mailClient.SendMailAsync(message);
message = null;
mailClient = null;
return true;
}
catch (SmtpFailedRecipientsException ep)
{
Console.WriteLine(ep.Message);
return false;
}
catch (Exception ep)
{
Console.WriteLine(ep.Message);
return false;
}
}
我不确定,但您可以尝试不使用异步 (SendMailAsync) 发送邮件吗,只需尝试调用正常的发送方法,您可能会得到异常详细信息。
我假设您正在使用 gmail 发送电子邮件。
您应该至少发送一次电子邮件,如果电子邮件无效,您将收到失败通知。
您可以创建一个 nightly/hourly 作业来检查这些失败的电子邮件并将它们标记为在您的数据库中无效。
下面是 link 以编程方式阅读电子邮件:
希望对您有所帮助!
如何使用 Asp.Net 检查电子邮件发送方法中的失败响应。
问题是我没有得到失败异常。
请提出更好的方法。
这是我的代码,我正在尝试访问电子邮件失败异常...
public static bool sendMail(string strTo, string strSubject, string strName, string strbody)
{
try
{
strName = strName == "" ? "Sir/Madam" : ("Dear " + strName + ",");
StringBuilder mailbody = new StringBuilder();
SmtpClient mailClient = null;
MailMessage message = null;
mailClient = new SmtpClient();
message = new MailMessage();
mailClient.Host = ConfigurationManager.AppSettings["SMTP_MAIL_SERVER"];
mailClient.Port = int.Parse(ConfigurationManager.AppSettings["PORT"]);
//network credentials
string strMailUserName = ConfigurationManager.AppSettings["FROM_ADDR"];
string strMailPassword = ConfigurationManager.AppSettings["FROM_ADDR_PASS"];
string strWebSiteURL = ConfigurationManager.AppSettings["LinkTosite"];
mailClient.EnableSsl = true;
System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(strMailUserName, strMailPassword);
mailClient.UseDefaultCredentials = true;
mailClient.Credentials = SMTPUserInfo;
string strFromMail = ConfigurationManager.AppSettings["FROM_ADDR"];
MailAddress fromAddress = new MailAddress(strFromMail, "TEST (Administrator)");
message.From = fromAddress;
message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure | DeliveryNotificationOptions.OnSuccess;
//to mail address
message.To.Add(strTo);
message.Subject = "ChatOnGo : " + strSubject;
//mailbody.AppendFormat("<link href='" + strWebSiteURL + "admin/css/bestlogin.css' rel='stylesheet' type='text/css' />");
mailbody.AppendFormat("<div class='dlogin_bg'><div class='dlogin_bg_top'></div><div class='dlogin_bg_bottom'><h2>" + strName + "</h2>");
mailbody.AppendFormat(strbody);
mailbody.AppendFormat("<br/><br/><span>Regards,<br /><a href='" + strWebSiteURL + "'>ChatOnGo Admin</a></span></div></div>");
message.Body = mailbody.ToString();
message.IsBodyHtml = true;
mailClient.SendMailAsync(message);
message = null;
mailClient = null;
return true;
}
catch (SmtpFailedRecipientsException ep)
{
Console.WriteLine(ep.Message);
return false;
}
catch (Exception ep)
{
Console.WriteLine(ep.Message);
return false;
}
}
我不确定,但您可以尝试不使用异步 (SendMailAsync) 发送邮件吗,只需尝试调用正常的发送方法,您可能会得到异常详细信息。
我假设您正在使用 gmail 发送电子邮件。 您应该至少发送一次电子邮件,如果电子邮件无效,您将收到失败通知。 您可以创建一个 nightly/hourly 作业来检查这些失败的电子邮件并将它们标记为在您的数据库中无效。
下面是 link 以编程方式阅读电子邮件:
希望对您有所帮助!