2010-05-04 9 views
8

मैंने देखा है कि हम हमेशा की तरह कर रहे हैं:मेरे ASP.NET ऐप को web.config से स्वचालित रूप से SMTP सेटिंग्स कैसे मिलती हैं?

SmtpClient mSmtpClient = new SmtpClient(); 
// Send the mail message 
mSmtpClient.Send(mMailMessage); 

और केवल जगह साख स्थापित कर रहे हैं web.config में कर रहे हैं:

<system.net> 
    <mailSettings> 
     <smtp> 
     <network host="xxx.xx.xxx.229" userName="xxxxxxxx" password="xxxxxxxx"/> 
     </smtp> 
    </mailSettings> 
    </system.net> 

तो मेरे सवाल है, यह स्वतः उन्हें प्राप्त करता है बाहर?

+0

परावर्तक अपने दोस्त है। – Steven

उत्तर

15

The documentation बताता है कि SmtpClient का पैरामीटर रहित कन्स्ट्रक्टर एप्लिकेशन या मशीन कॉन्फ़िगरेशन फ़ाइल से इसकी कॉन्फ़िगरेशन पढ़ता है। वेब अनुप्रयोग के लिए, अनुप्रयोग कॉन्फ़िगरेशन फ़ाइल web.config है। यह भी मतलब है कि अगर mailSettings तत्व Web.config में सेट नहीं है, इसे देने से पहले machine.config में सेटिंग्स के लिए दिखाई देगा,:

"यह निर्माता होस्ट, साख, और के लिए पोर्ट गुण initializes एप्लिकेशन या मशीन कॉन्फ़िगरेशन फ़ाइलों में सेटिंग्स का उपयोग कर नया SmtpClient नया।

1

आपके विंडोज फ़ोल्डर में एक मशीन.कॉन्फिग फ़ाइल है, और प्रत्येक वेबसाइट (या एप्लिकेशन) में web.config फ़ाइल (या एक app.config फ़ाइल) है। ऐप डोमेन के लिए सेटिंग्स प्राप्त करने के लिए ये फ़ाइलें संयुक्त हैं।

smtp वर्ग बस शायद के माध्यम से ConfigurationManager Class

2
var config = WebConfigurationManager.OpenWebConfiguration("Web.config");  
var settings= config.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup; 

if (settings!= null) 
{ 
    var port = settings.Smtp.Network.Port; 
    var host = settings.Smtp.Network.Host; 
    var username = settings.Smtp.Network.UserName; 
    var password = settings.Smtp.Network.Password;  
} 
1

बहुत बढ़िया जवाब देने Driis विन्यास पहुंचता है, तो। काश मैं आपके जवाब को अपनाने के लिए पर्याप्त प्रतिष्ठा रखता हूं, लेकिन मैं नहीं :(

वैसे भी, मैंने कुछ समान जवाब दिया, हालांकि यह वास्तव में अबातिश्चेव शो की तरह किया गया है। केवल अंतर यह है कि मैंने इस मुद्दे को सक्षम एसएसएल के साथ हल किया है नहीं पहुंच एटीएम नहीं हैं।

See article thread here

संबंधित मुद्दे