c# - smtp 异常 收件人失败

标签 c# .net exception smtpclient

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

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/

相关文章:

.net - 对一个 DataGridView 列使用两个不同 DataRow.Columns 的值

c++ - 如何将所有抛出变成中止条件以进行调试?

c# - Interop Word - 从文档中删除页面

c# - 设计问题

c# - 学习 C# 和 .NET 的书籍

c# - 允许实现类将自己用作类型

wpf - 在 'System.Windows.Data.Binding' 上提供值引发异常

python - `CalledProcessError`模块中是否有 `asyncio`的模拟?

c# - 当你有多个 visual studio 解决方案时如何使用重构工具?

c# - 反序列化 Microsoft.OData.Edm.Date