我通常将ASP.NET应用程序的SMTP参数放在web.config中<mailsettings>
下的<system.net>
元素中。
是否可以在Azure门户的“应用程序设置”下或某个位置进行配置,还是必须通过编辑web.config进行管理?
我的意思不是从appSetting
键中读取内容,然后将它们填充到System.Net.Mail
对象的各自属性中。我希望在实例化<mailSettings>
时从配置文件(SmtpClient
元素)中自动填充参数,例如主机,端口,凭据,发送者等。
答案 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 )