2010-09-01 22 views
16

के साथ एसएमटीपी प्रमाणीकरण मैं अपने MailSettings को web.config में संग्रहीत कर रहा हूं, हालांकि जब मैं संदेश भेजता हूं, तो मेरा एसएमटीपी सर्वर वापस रिपोर्ट करता है कि मुझे प्रमाणीकरण का उपयोग करने की आवश्यकता है। मुझे कॉन्फ़िगरेशन फ़ाइल में मेरा उपयोगकर्ता नाम/पासवर्ड मिला है, लेकिन यह अभी भी विफल रहता है।कॉन्फ़िगरेशन फ़ाइल के मेलसेटिंग

यह काम करता है अगर मैं निम्नलिखित करता हूं, लेकिन यह एक अतिरिक्त कदम की तरह लगता है। क्या इसे सिर्फ कॉन्फ़िगरेशन फ़ाइल से नहीं लेना चाहिए और प्रमाणीकरण का स्वचालित रूप से उपयोग नहीं करना चाहिए?

System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration(
    HttpContext.Current.Request.ApplicationPath); 
MailSettingsSectionGroup settings = 
    (MailSettingsSectionGroup) config.GetSectionGroup("system.net/mailSettings"); 

SmtpClient client = new SmtpClient(); 
client.Credentials = new NetworkCredential(
    settings.Smtp.Network.UserName, settings.Smtp.Network.Password); 

Web.config

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]" deliveryMethod="Network"> 
      <network host="mail.xyz.com" defaultCredentials="true" 
       userName="[email protected]" password="abc123" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

System.Net.Mail.SmtpException

पार हो गई भंडारण आवंटन। सर्वर प्रतिक्रिया थी: कृपया smtp प्रमाणीकरण का उपयोग करें। http://www.myISP.com/support/smtp-authentication.aspx

"पार हो गई भंडारण आवंटन" काफी कुछ समय के लिए हमें उलझन में देखें, अब हम इसे अनदेखा। यह "उपयोग smtp प्रमाणीकरण" है जो महत्वपूर्ण प्रतीत होता है।

उत्तर

1

SmtpClient क्लास को बिना पैरामीटर के उपयोगकर्ता नाम या पासवर्ड को स्पष्ट रूप से पढ़ने की आवश्यकता के बिना लेख पैरामीटर का उपयोग करना चाहिए। http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

क्या आप अपनी कॉन्फ़िगरेशन से System.Net सेगमेंट पोस्ट कर सकते हैं? साथ ही, क्या आप SMTP सर्वर से प्राप्त सटीक त्रुटि पोस्ट कर सकते हैं?

25

कोडित दृष्टिकोण और वेब.कॉन्फिग के बीच अंतर केवल दृष्टिकोण यह है कि उत्तरार्द्ध में defaultCredentials="true" सेट है। यह उपयोगकर्ता नाम और पासवर्ड को उस दृष्टिकोण के साथ प्रमाणीकृत करने के लिए उपयोग करने से रोक रहा है। मुझे लगता है कि समस्या को "झूठा" (या इसे पूरी तरह से हटाकर) को हल करके हल किया जाएगा, क्योंकि "झूठा" डिफ़ॉल्ट है)।

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