代码之家  ›  专栏  ›  技术社区  ›  Ryan Rivest

当指定localhost时,smtpclient如何确定要使用的邮件服务器?

  •  1
  • Ryan Rivest  · 技术社区  · 16 年前

    我正在设置 ELMAH 发送错误的电子邮件通知,我发现了一些让我吃惊的有趣的事情。

    在my web.config中,elmah部分的设置如下:

    <elmah>
        <errorMail from="sender@example.com"
                   to="recipient@example.com"
                   subject="Error Notification"
                   smtpServer="localhost" />
    </elmah>
    

    这在我们的IIS服务器上工作正常,电子邮件是即时发送的。我假设在Visual Studio中运行应用程序时,Elmah不知道如何处理本地主机服务器,因为Cassini没有配置邮件服务器。你看,我在测试那个理论时发现错误通知实际上是被发送的。这需要更长的时间(大约2分钟,而不是在IIS服务器上即时进行,或者如果我直接指定邮件服务器)。

    smtpclient.send()如何知道在未明确指定邮件服务器时要使用哪个邮件服务器?

    我用Reflector做了一些挖掘,我怀疑它可能在smtptransport中的某个地方(可能是getConnection()方法?).

    1 回复  |  直到 16 年前
        1
  •  0
  •   Ryan Rivest    16 年前

    嗯,答案并不像我想象的那么令人兴奋或有趣。我曾经设想过复杂的邮件服务器检测方法,但事实证明我只运行一个与本地计算机上的IIS绑定的SMTP服务,这就是为什么localhost在cassini中充当邮件服务器的原因。

    有趣的是,在你理解技术的内在运作之前,它看起来是多么的不可思议:p

    推荐文章