【问题标题】:How to dispose an SmtpClient in .NET 3.5?如何在 .NET 3.5 中配置 SmtpClient?
【发布时间】:2013-08-18 12:36:32
【问题描述】:

我正在使用SmtpClient 发送邮件。我该如何处置SmtpClient。我正在使用 .NET 3.5。

 try
     {
         smtpClient.Send(message);
         Log.WriteSpecialLog("smtpClient mail sending try success", "");
     }
      catch (Exception ee)
     {
         Log.WriteSpecialLog("smtpClient mail sending try Failed : " + ee.ToString(), "");
         return false;
     }

【问题讨论】:

    标签: c# smtp smtpclient


    【解决方案1】:

    对于 .NET 3.5,无法正确处理 SmtpClient 是一个已知问题。 http://connect.microsoft.com/VisualStudio/feedback/details/146711/smtp-never-sends-the-quit-command

    您的问题与此类似:Properly disposing resources used by SmtpClient

    该问题已在 .NET 4.0 http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient(v=vs.100).aspx 中得到修复,因此(以及许多其他原因)建议更新 .NET Framework(尽管我个人知道有时升级是个问题)。

    但是,如果你真的想丢弃SmtpClient,你可以自己丢弃类。但我不知道SmtpClient 的效果如何。 http://forums.asp.net/t/383218.aspx/1 http://msdn.microsoft.com/en-us/library/fs2xkftw.aspx

    作为旁注,我建议您处理 catch SmtpFailedRecipientsException,而不是通用处理异常。 InnerException 中的 SmtpStatusCode 为您提供重要信息。

    【讨论】:

    • 我写信是为了捕捉内部异常。让我们看看会是什么问题
    • 不过,这实际上并不能回答问题。被3.5卡住了,我该怎么办?实际发送 QUIT 消息所需的所有相关属性都无法访问(内部),因此即使子类化也无法访问它们。
    猜你喜欢
    • 1970-01-01
    • 2010-12-13
    • 2011-11-06
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    相关资源
    最近更新 更多