我可以在Azure门户中设置SMTP设置吗?

时间:2019-02-04 09:57:57

标签: azure-web-sites

我通常将ASP.NET应用程序的SMTP参数放在web.config中<mailsettings>下的<system.net>元素中。

是否可以在Azure门户的“应用程序设置”下或某个位置进行配置,还是必须通过编辑web.config进行管理?

我的意思不是从appSetting键中读取内容,然后将它们填充到System.Net.Mail对象的各自属性中。我希望在实例化<mailSettings>时从配置文件(SmtpClient元素)中自动填充参数,例如主机,端口,凭据,发送者等。

1 个答案:

答案 0 :(得分:0)

  

我的意思不是从appSetting键中读取内容,然后将它们填充到System.Net.Mail对象的各自属性中。我希望在实例化SmtpClient时自动从配置文件填充参数,例如主机,端口,凭据,发送者等。

不,您不能。

但是,有另一种解决方案。看一下App Service Application Settings。 (其中的任何设置都会覆盖在web.config中具有相同名称的设置。)

由于您使用的是mailSettings元素的自动配置内容,因此您将不得不更改代码以不依赖自动配置。自己阅读设置,并将其应用到您的SmpClient

您可以创建将使用应用程序设置构建的自定义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);

(受此帖子启发:How to set mailSettings from Azure App Service - Application settings