C# smtp异常失败的收件人

C# smtp异常失败的收件人,c#,.net,exception-handling,smtpclient,C#,.net,Exception Handling,Smtpclient,我的应用程序中有以下代码: catch (SmtpException oSMTPException) { string sFailedEmailIds = string.Empty; string[] sMailids = null; ((System.Net.Mail.SmtpFailedRecipientsException)(oSMTPException)). InnerExceptions[0].FailedRecipient } 我有许多邮件

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

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

    ((System.Net.Mail.SmtpFailedRecipientsException)(oSMTPException)).
        InnerExceptions[0].FailedRecipient
}
我有许多邮件尚未发送到的邮件ID。 我想将详细信息存储在字符串
sfailedemailds


我怎样才能做到这一点呢?

我不知道您想要存储什么,但我想您想要所有的电子邮件ID,所以这与我最近做的类似:

string sFailedEmailIds = String.Join(",", ((System.Net.Mail.SmtpFailedRecipientsException)(oSMTPException)).InnerExceptions.Select(x=>x.FailedRecipient));
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;
}
catch(SMTPFailedRecipientSexException)
{
字符串sfailedemailds=“”;
for(int i=0;i
我使用SmtpFailedRecipientsException而不是SmtpException,因为它包含所有失败的电子邮件


希望有帮助

给我以下两个错误
与“string.Join(string,string[])”匹配的最佳重载方法有一些无效参数
参数“2”无法从“System.Collections.Generic.IEnumerable”转换为“string[]”