Как программно получить smtp детали сервера от web.config

У меня есть следующие детали SMTP, сохраненные в 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>

Как я могу получить эти значения из c# класса.

7
задан Çağdaş Tekin 1 March 2010 в 22:43
поделиться

3 ответа

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;
}
18
ответ дан 6 December 2019 в 10:00
поделиться

А как же:

string fullpath = @"C:\FullPath\YourFile.config";
string configSection = "system.net/mailSettings";
Configuration config = ConfigurationManager.OpenExeConfiguration(fullpath);
MailSettingsSectionGroup settings = 
    config.GetSectionGroup(configSection) as MailSettingsSectionGroup; 
0
ответ дан 6 December 2019 в 10:00
поделиться

Если вам нужно отправлять электронную почту с этим почтовым сервером, вам не нужно читать настройки и применять. Эти настройки применяются неявно в приложении.

Если вы читаете их по какой-либо другой причине, я собирался написать что-то похожее на ответ Дарина. Но как раз когда я писал, я обнаружил, что он ответил, поэтому, пожалуйста, обратитесь к его ответу, если вам действительно нужно прочитать. :)

.
1
ответ дан 6 December 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: