将电子邮件服务器的当前设置签入版本控制。
<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="network">
<network host="..." port="25" password="..." userName="..." />
</smtp>
</mailSettings>
</system.net>
</configuration>
我想从版本控制中删除(至少是密码),以便其他开发人员不能(意外地)通过我们的邮件服务器发送邮件。
我们正在为出站电子邮件使用SAAS提供商,因此我无法通过设置防火墙来限制对此服务器的访问。唯一的身份验证是使用SAAS提供商提供的用户名和密码。
是否可以从Azure中的应用程序设置刀片设置mailSettings。这样我就可以从版本控制中删除密码,而不需要在(自动)部署时手动更新web.config。
答案 0 :(得分:3)
正如您所说,您正在使用Postal。在他们的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应用服务的应用程序设置中修改电子邮件设置。