在ASP MVC中从数据库动态设置web.config中的SMTP

时间:2014-07-06 14:04:48

标签: asp.net-mvc

我想知道是否有办法使用数据库中的数据设置通常存储在web.config中的SMTP凭据。

场景是这样的:我使用SMTP服务器发送电子邮件。 SMTP凭证如下:

<smtp from="sender@domain.com">
    <network enableSsl="true" host="mail.domain.com" port="2525" userName="sender@domain.com" password="password" />
</smtp>

我在想如果将来密码更改,我需要打开web.config并手动替换它。我认为如果可以从数据库中提取所有变量(来自,主机,端口,用户名和密码)会更好。因此,当我想要更改任何内容时,我将能够使用网站UI更改它。我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:0)

您应该可以通过执行类似

的操作来设置用户名密码
 string userName = "userName";
 string password = "password";
 SmtpClient client = new SmtpClient();
 client.Credentials = new NetworkCredential(userName, password);

如果您愿意,只需从数据库中获取用户名和密码。

但是我会问为什么你担心密码频繁更改这是一个问题?这将导致另一个数据库命中,因为系统管理员有可能希望有一天更改密码,这通常是一个大问题,因为大多数使用smtp服务器的其他应用程序可能会在web.config或app.config。根据我的经验,这样的更改通常发生在发布期间,通常意味着代码部署,并且此时更改配置应该很容易。