2010-01-07 30 views
7

SMTP服務器的細節我已存儲在web.config中如何以編程方式檢索的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> 

如何從一個C#類中檢索這些值以下SMTP細節。

回答

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; 
} 
+2

小尼特:會不會 「〜/的web.config」 更可靠? – 2010-01-07 09:11:19

+0

正確,我解決了這個問題。 – 2010-01-07 09:20:21

1

如果您需要使用此郵件服務器詳細信息發送電子郵件,則無需閱讀設置並應用。這些設置隱式應用於應用程序中。

如果你是因爲任何其他原因閱讀它,我正要寫一些類似達林的答案。但是就在我寫作的時候,我發現他回答了,如果你真的需要閱讀,請參考他的回答。 :)

0

什麼:

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