2016-03-31 22 views
1

電子メールの失敗応答を確認する方法は、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; 
    } 
} 

答えて

0

メールを送信するためにGmailを使用していると仮定します。 少なくとも1回は電子メールを送信してください。電子メールが有効でない場合は、失敗通知が届きます。 夜間/時間別のジョブを作成して、これらの失敗した電子メールをチェックし、データベースで無効とマークすることができます。以下は

プログラム的に電子メールを読むためのリンクです:

http://www.aspsnippets.com/Articles/Fetch-and-read-email-messages-with-attachments-from-GMAIL-POP3-mail-server-in-ASPNet.aspx

私はこれが役に立てば幸い!

0

だけ呼び出すようにしようと、私はわからないが、あなたは非同期(SendMailAsync)せずにメールを送信しようとすることができますおそらくあなたは例外の詳細を取得します。

関連する問題