2008-10-05 19 views
5

मैं सिस्टम.Net.Mail और System.Web.Mail दोनों को जीमेल के साथ काम करने के लिए मिल सकता है, लेकिन मैं उन्हें दोनों को smtp के साथ काम करने के लिए नहीं मिल सकता .att.yahoo.com।System.Net.Mail क्यों विफल रहता है System.Web.मेल काम करता है

मुझे अपनी वेब.कॉन्फिग कुंजी से एसएमटीपी सेटिंग्स मिलती हैं। जब मैं System.Web.Mail का उपयोग भेजता हूं, तो ये सेटिंग्स काम करती हैं, लेकिन System.Net.Mail के साथ विफल हो जाती हैं।

<add key="SmtpServer" value="smtp.att.yahoo.com"/> 
    <add key="SmtpServerAuthenticateUser" value="[email protected]"/> 
    <add key="SmtpServerPort" value="465"/> 
    <add key="SmtpUseSSL" value="1"/> 
    <add key="SmtpServerAuthenticatePassword" value="MY PASSWORD"/> 

यहाँ कोड है कि अपनी सेटिंग्स पकड़ लेता है, और जीमेल के साथ काम करता है, att.yahoo के साथ विफल:

 SmtpClient smtp; 

     if (!string.IsNullOrEmpty(Util.get_setting("SmtpServer", ""))) 
     { 
      smtp = new SmtpClient(Util.get_setting("SmtpServer", "")); 
     } 
     else 
     { 
      smtp = new SmtpClient(); 
     } 


     if (!string.IsNullOrEmpty(Util.get_setting("SmtpServerAuthenticatePassword", ""))) 
      smtp.Credentials = new System.Net.NetworkCredential(
       Util.get_setting("SmtpServerAuthenticateUser", ""), 
       Util.get_setting("SmtpServerAuthenticatePassword", "")); 

     if (!string.IsNullOrEmpty(Util.get_setting("SmtpServerPort", ""))) 
      smtp.Port = int.Parse(Util.get_setting("SmtpServerPort", "")); 

     if (Util.get_setting("SmtpUseSSL", "0") == "1") 
      smtp.EnableSsl = true; 

     smtp.Send(message); 

यह मेरी समस्या है?

http://blogs.msdn.com/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx

+0

क्या आपने पोर्ट 25 का उपयोग करने का प्रयास किया था? – gimel

उत्तर

9

मैं इस सवाल का जवाब कुछ सीखा है। जवाब है:

क्योंकि System.Net.Mail "अंतर्निहित" एसएसएल, केवल "स्पष्ट" एसएसएल का समर्थन नहीं करता है।

1

गिमल का जवाब सामने आ गया है। वह कहता है कि नई प्रणाली का उपयोग करें। नेट मेल लाइब्रेरी, लेकिन समस्या यह है कि सिस्टम। नेट .मेल पोर्ट 465 पर सिस्टम के रूप में SSL के लिए काम नहीं करता है। वेबमेल ने काम किया/करता है!

मैंने पूरे दिन और समान सेटिंग्स सिस्टम के लिए अपना सिर पीटा है। वेब मेल वर्क्स, और सिस्टम। नेटमेल काम नहीं करता है (कम से कम एसएमटीपी सर्वर के साथ मैं परीक्षण कर रहा हूं), और यहां मैं सोच रहा था कि मुझे हमेशा जीवन में सर्वश्रेष्ठ पाने के लिए माइक्रोसॉफ्ट की नवीनतम पेशकश में अपग्रेड करना चाहिए। :-(

एम $ ब्लॉग के लिए यह लिंक यह सब बताता है; "System.Net.Mail केवल" स्पष्ट एसएसएल "का समर्थन करता है।" और मुझे लगता है कि एसएमटीपी सर्वर मैं परीक्षण एसएसएल चाहता हूं। (यह एक याहू सर्वर बीटीडब्ल्यू है)

चूंकि नए एपीआई में "अपग्रेडिंग" के कारण उन उपयोगकर्ताओं के लिए कार्यक्षमता तोड़ने में कोई संदेह नहीं है, जिनके पास सर्वर एसएसएल की आवश्यकता है, यह इस मामले में "अपग्रेड" करने के लिए एक कदम पीछे की तरह लगता है। अगर आप कर सकते हैं अभी भी चेतावनियों के साथ संकलित करें, बस उन चेतावनियों को अक्षम करें (0618 अगर मुझे याद है) और ट्रकिंग जारी रखें। ओह, और आप यह सुनिश्चित करना चाहेंगे कि आपका एप्लिकेशन हमेशा .NET फ्रेमवर्क संस्करण के विरुद्ध चलता है जिसे आपने कॉन्फ़िगरेशन फ़ाइल के माध्यम से बनाया और परीक्षण किया , बस भविष्य में यदि एम $ पुरानी एपीआई निकाल देता है तो आपका आवेदन सुरक्षित है।

1

System.Net.Mail के माध्यम से निहित और स्पष्ट SSL कनेक्शन से संबंधित पिछले उत्तर बिल्कुल सही है। जिस तरह से मैं इस बाधा से गुजरने में सक्षम था, और अब अप्रचलित सिस्टम का उपयोग किए बिना। वेब.मेल, सीडीओ (सहयोगी डेटा ऑब्जेक्ट्स) का उपयोग करना था।

मैंने उत्सुकता से एक और स्टैक ओवरफ़्लो पोस्ट (GMail SMTP via C# .Net errors on all ports) पर एक उदाहरण दिया और एक उदाहरण दिया। अन्यथा, आप http://support.microsoft.com/kb/310212 पर सीधे केबी आलेख पर जा सकते हैं।

आशा है कि इससे मदद मिलती है!

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