2

我的应用程序中有以下代码:

catch (SmtpException oSMTPException)
{
    string sFailedEmailIds = string.Empty;
    string[] sMailids = null;

    ((System.Net.Mail.SmtpFailedRecipientsException)(oSMTPException)).
        InnerExceptions[0].FailedRecipient
}

我有许多邮件 ID 尚未发送到这些邮件 ID。我想将详细信息存储在一个字符串sFailedEmailIds中。

我怎样才能做到这一点?

4

2 回答 2

2

我不完全知道你想要存储什么,但我猜你想要所有的电子邮件 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 因为它包含所有失败的电子邮件。

希望能帮助到你。;)

于 2016-10-26T15:03:43.100 回答
0
string sFailedEmailIds = String.Join(",", ((System.Net.Mail.SmtpFailedRecipientsException)(oSMTPException)).InnerExceptions.Select(x=>x.FailedRecipient));
于 2012-09-13T05:28:11.363 回答