【问题标题】:IIS SMTP and .NET ApplicationIIS SMTP 和 .NET 应用程序
【发布时间】:2013-09-06 09:14:35
【问题描述】:

IIS SMTP 设置似乎很混乱,而且是一个常见问题。我环顾四周,似乎没有找到有这个问题的人,但希望我们能一起解决问题。

我正在尝试设置一个 WCF 服务,该服务将触发一封电子邮件,其中包含来自其中的数据库的一些详细信息。听起来很简单对吧...?我看到的所有在线参考都在 web.config 文件中设置了 SMTP 配置,例如:

 <system.net>
    <mailSettings>
        <smtp deliveryMethod="Network" from="mailer@dla.mil">
            <network host="smtp.gmail.com" port="587" enableSsl="true" defaultCredentials="false" userName="mygmailaccount" password="mypassword" />
        </smtp>
    </mailSettings>
 </system.net>

问题是我不能有任何纯文本密码,而且我的网络服务器需要身份验证。所以我在 IIS 管理器中发现你可以在那里设置凭据:

但是,我不知道如何让服务获取这些设置。我在这里错过了什么吗?这甚至可能吗?如果没有,有人对更好的解决方案有任何想法吗?

谢谢!

【问题讨论】:

    标签: asp.net .net iis smtp


    【解决方案1】:

    首先,IIS SMTP 服务与 .NET &lt;smtp&gt; 邮件设置无关。它只是一个服务器,不与 .NET 交互,除非您将应用程序配置为通过该服务发送邮件。所以直接忽略吧。

    如果您希望您的应用程序通过 GMail 的 SMTP 服务器发送电子邮件,您需要为您的 Web 应用程序配置一个应用程序专用密码。

    您可以在此处了解如何执行此操作:

    Sign in using application-specific passwords

    基本上,您会专门为您的应用程序创建一个密码。您可以为不同的应用程序配置多个密码,以便与同一个 GMail 帐户一起使用。其理念是,如果您的一个或多个应用程序遭到入侵,那么您可以轻松撤销被入侵的应用程序,而无需跨多个应用程序重置密码。

    您输入应用程序的名称(例如“我的网络应用程序”),然后单击“生成密码”按钮。这将生成一个特定于您的应用程序的随机密码。将密码复制并粘贴到 smtp/network 配置元素的 password 属性中,然后让您的应用程序发送电子邮件。

    关于无法以纯文本形式存储您的 Gmail 密码,您可以使用此处记录的受保护配置功能:

    Encrypting Configuration Information Using Protected Configuration

    有些部分无法加密,如果 smtp/network 设置是其中之一,那么只需将密码移动到 &lt;appSettings&gt; 键/值对并加密该部分。这只是意味着您的应用需要额外的步骤来读取密码并在使用 System.Net.Mail.SmtpClient 时进行设置。

    【讨论】:

    猜你喜欢
    • 2012-05-28
    • 2010-11-12
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2021-11-04
    • 2019-01-05
    • 2020-06-12
    相关资源
    最近更新 更多