Reputation: 81342
I have the following SMTP details stored in web.config
<system.net>
<mailSettings>
<smtp from="[email protected]">
<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.
Upvotes: 7
Views: 6523
Reputation: 1039130
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;
}
Upvotes: 18
Reputation: 57976
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;
Upvotes: 0
Reputation: 43217
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. :)
Upvotes: 1