1

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 管理器中发现您可以在其中设置凭据,例如:

iis 图像

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

谢谢!

4

1 回答 1

2

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

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

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

使用应用程序专用密码登录

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

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

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

使用受保护的配置加密配置信息

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

于 2013-09-06T01:02:48.907 回答