【问题标题】:How to set mailSettings from Azure App Service - Application settings如何从 Azure 应用服务设置 mailSettings - 应用程序设置
【发布时间】:2017-03-16 08:20:45
【问题描述】:

电子邮件服务器的当前设置已检入版本控制。

<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="network">
        <network host="..." port="25" password="..." userName="..." />
      </smtp>
    </mailSettings>
  </system.net>
</configuration>

我想从版本控制中删除(至少是密码),这样其他开发人员就不能(意外)通过我们的邮件服务器发送邮件。

我们为出站电子邮件使用 SAAS 提供商,因此我无法通过设置防火墙来限制对该服务器的访问。唯一的身份验证是使用 SAAS 提供商提供的用户名和密码。

是否可以从 Azure 中的应用程序设置刀片设置 mailSettings。这样我可以从版本控制中删除密码,并且不需要在(自动)部署时手动更新 web.config。

【问题讨论】:

  • 发送您的电子邮件您使用什么,SmtpClient?
  • 是的,使用 Postal,它在后台使用 SmtpClient。

标签: azure deployment web-config


【解决方案1】:

正如您提到的,您使用的是邮政。在他们的GitHub 上,我注意到您可以提供一个创建 SmtpClient 的函数。

从那里开始,您可以创建一个将使用应用程序设置构建的自定义 SmtpClient:

    var smtpServerHost = CloudConfigurationManager.GetSetting("SmtpServerHost");
    var smtpServerPort = int.Parse(CloudConfigurationManager.GetSetting("SmtpServerPort"));
    var smtpServerUserName = CloudConfigurationManager.GetSetting("SmtpServerUserName");
    var smtpServerPassword = CloudConfigurationManager.GetSetting("SmtpServerPassword");

    var client = new SmtpClient(smtpServerHost, smtpServerPort);
    client.Credentials = new NetworkCredential(smtpServerUserName, smtpServerPassword);

这样您就可以在 Azure 应用服务的应用程序设置中修改您的电子邮件设置。

【讨论】:

  • var client = new SmtpClient(smtpServerHost, smtpServerPort); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Credentials = new NetworkCredential(smtpServerUserName, smtpServerPassword);客户端.EnableSsl = true; EmailService emaiService = new EmailService(ViewEngines.Engines, () => client);emaiService.SendAsync(email);
猜你喜欢
  • 2020-08-13
  • 2020-08-01
  • 1970-01-01
  • 2017-08-28
  • 2018-10-23
  • 2021-10-25
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多