How to programmatically retrieve smtp server details from web.config
I have th开发者_运维问答e following SMTP details stored in web.config
<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>
How can I retrieve these values from within a c# class.
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;
}
If you need to send email with this mail-server-details you don't need to read the settings and apply. These settings are applied implicitly in the application.
If you are reading it for any other reason I was about to write something similar to Darin's answer. But just as I was writing I found he answered so please refer to his answer if you actually need to read. :)
What about:
string fullpath = @"C:\FullPath\YourFile.config";
string configSection = "system.net/mailSettings";
Configuration config = ConfigurationManager.OpenExeConfiguration(fullpath);
MailSettingsSectionGroup settings =
config.GetSectionGroup(configSection) as MailSettingsSectionGroup;
精彩评论