如何以编程方式从web.config中检索smtp服务器详细信息

时间:2010-01-07 08:56:18

标签: c# web-config

我在web.config中存储了以下SMTP详细信息

<system.net>
    <mailSettings>
      <smtp from="isds@ixtent.com">
        <network host="mail.domain.com" port="25" userName="username" password="password" defaultCredentials="true"/>
      </smtp>
    </mailSettings>
  </system.net>

如何从c#类中检索这些值。

3 个答案:

答案 0 :(得分:18)

Configuration configurationFile = WebConfigurationManager
    .OpenWebConfiguration("~/web.config");
MailSettingsSectionGroup mailSettings = configurationFile
    .GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;
if (mailSettings != null)
{
    int port = mailSettings.Smtp.Network.Port;
    string host = mailSettings.Smtp.Network.Host;
    string password = mailSettings.Smtp.Network.Password;
    string username = mailSettings.Smtp.Network.UserName;
}

答案 1 :(得分:1)

如果您需要使用此邮件服务器详细信息发送电子邮件,则无需阅读设置并应用。这些设置隐式应用于应用程序。

如果你因为任何其他原因阅读它,我就要写一些类似于达林答案的东西。但就在我写作的时候,我发现他回答了,如果你真的需要阅读,请参考他的回答。 :)

答案 2 :(得分:0)

怎么样:

string fullpath = @"C:\FullPath\YourFile.config";
string configSection = "system.net/mailSettings";
Configuration config = ConfigurationManager.OpenExeConfiguration(fullpath);
MailSettingsSectionGroup settings = 
    config.GetSectionGroup(configSection) as MailSettingsSectionGroup; 
相关问题