我的应用程序中有以下代码:
catch (SmtpException oSMTPException)
{
string sFailedEmailIds = string.Empty;
string[] sMailids = null;
((System.Net.Mail.SmtpFailedRecipientsException)(oSMTPException)).
InnerExceptions[0].FailedRecipient
}
我有多个邮件 ID 尚未发送邮件。
我想将详细信息存储在字符串 sFailedEmailIds
中。
我怎样才能做到这一点?
最佳答案
我不太清楚您想要存储什么,但我猜您想要所有电子邮件 ID,所以这与我最近所做的类似:
catch (SmtpFailedRecipientsException e)
{
string sFailedEmailIds = "";
for (int i = 0; i < e.InnerExceptions.Length; i++)
{
SmtpStatusCode status = e.InnerExceptions[i].StatusCode;
if (status == SmtpStatusCode.MailboxBusy ||
status == SmtpStatusCode.MailboxUnavailable) {
sFailedEmailIds += e.InnerExceptions[i].FailedRecipient.Split('<', '>')[1] + ", ";
} else {
// other statuscode that you want to handle
}
}
return sFailedEmailIds;
}
我使用 SmtpFailedRecipientsException 而不是 SmtpException,因为它包含所有失败的电子邮件。
希望有帮助。 ;)
关于c# - smtp 异常 收件人失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12399847/