C# 处理SmtpClient.Send异常

C# 处理SmtpClient.Send异常,c#,smtpclient,C#,Smtpclient,我对如何处理SmtpClient.send异常有点困惑 例如,我们有“SmtpException”,但处理其中特定异常的正确方法是什么。 使用HResult属性 如果是这样,我如何捕获“无效用户”异常或“smtp服务器无法访问”异常 您可以评估StatusCode属性(请参阅): HResult的信息量可能比StatusCode的信息量要少,因为它是针对发送的错误的。顺便说一句,C#6将为C#提供异常过滤器,这是VB很长时间以来一直喜欢的东西,因此在捕获中处理特定错误代码会变得容易得多。我已经尝

我对如何处理SmtpClient.send异常有点困惑

例如,我们有“SmtpException”,但处理其中特定异常的正确方法是什么。 使用HResult属性


如果是这样,我如何捕获“无效用户”异常或“smtp服务器无法访问”异常

您可以评估
StatusCode
属性(请参阅):


HResult
的信息量可能比
StatusCode
的信息量要少,因为它是针对发送的错误的。顺便说一句,C#6将为C#提供异常过滤器,这是VB很长时间以来一直喜欢的东西,因此在捕获中处理特定错误代码会变得容易得多。我已经尝试过StatusCode求值。例如,使用错误的smtp ip和错误的smtp端口,在这两种情况下我都会得到StatusCode:GeneralFailure。但是InnerException消息是不同的:{“无法解析远程名称:'smtp.gmail.com4'”}和{“无法连接到远程服务器”},因此似乎有一种方法比使用StatusCode更深入。但我看不出确切的方式。您可能还会捕获一个
SmtpFailedRecipientException
。看这个。还有另外一个。。。
try
{
    client.Send(message);
}
catch (SmtpException e)
{
    Console.WriteLine("Error: {0}", e.StatusCode);
}