我試圖讓我的頭繞着System.Net.Mail類,但我很難找到像樣的文檔。smtpfailedrecipientsexception是否適用於CC和BCC
第一個查詢 - 說我有一封電子郵件,其中包含CC和BCC電子郵件,是否需要捕獲SmtpFailedRecipientsException而不是SmtpFailedRecipientException(注意單元格收件人),還是打算髮送給多個TO收件人?
第二個查詢 - 當我使用下面的方法,通過迭代例外,將內部例外涉及到那些已逝去的電子郵件地址,如BCC但不是TO或CC。如果是這種情況,那麼重新發送然後再去所有3?
static void CheckExceptionAndResend(SmtpFailedRecipientsException ex, SmtpClient client, MailMessage message)
{
var status = ex.StatusCode;
for (int i = 0; i < ex.InnerExceptions.Length; i++)
{
if (status == SmtpStatusCode.MailboxBusy ||
status == SmtpStatusCode.MailboxUnavailable ||
status == SmtpStatusCode.TransactionFailed)
{
System.Threading.Thread.Sleep(3000);
client.Send(message);
}
else
{
// TODO: Log delivery failure
}
}
}
所有建議讚賞。提前致謝。
是的,有一個方法調用client.Send()然後調用SmtpFailedRecipientsException異常中顯示的方法。你已經回答了第二部分。這似乎是合乎邏輯的,因爲信息從來沒有被「重建」過,只是憎恨。 – dotnetnoob 2013-02-28 19:21:03
此外,似乎只會針對本地電子郵件地址拋出異常,因此,如果我將電子郵件發送給用戶而不是我自己的內部管理員,則不會發生異常。 – dotnetnoob 2013-02-28 19:23:36
@dotnetnoob如果您位於Intranet中,則爲true,因爲您的smtp客戶端實例是使用您的Intranet的smtp郵件主機的值進行初始化的,該主機只能檢測本地郵件地址的故障,而不是其他人。 – user841311 2013-03-01 10:01:22