2010-01-28 16 views
7

के साथ काम करने के लिए प्राप्त करना मैं अपनी कंपनी के ईमेल सर्वर के माध्यम से एक ईमेल रिले करने के लिए System.Net.Mail.SmtpClient क्लास का उपयोग करने का प्रयास कर रहा हूं। मेल सर्वर के सभी एसएमटीपी कनेक्शन एसएसएल होना चाहिए और यह एक स्वयं हस्ताक्षरित प्रमाणपत्र का उपयोग करता है। यह Outlook के लिए ठीक है जहां आप केवल चेतावनी संवाद पर ठीक क्लिक कर सकते हैं, लेकिन क्या किसी को स्मिटप क्लाइंट को स्वयं हस्ताक्षरित प्रमाणपत्र स्वीकार करने का तरीका पता है?SmtpClient को स्वयं हस्ताक्षरित SSL प्रमाणपत्र

मैं इस ऐप का उपयोग विंडोज़ एज़ूर प्लेटफॉर्म पर करने की योजना बना रहा हूं, इसलिए मैं स्वयं हस्ताक्षरित प्रमाण पत्र को विश्वसनीय रूट के रूप में स्थापित नहीं कर पाऊंगा।

उत्तर

3

मेरा मुद्दा यह हुआ कि नेट स्मिट क्लाइंट क्लास एसएमटीपी एसएसएल कनेक्शन के लिए बंदरगाह 465 के उपयोग का समर्थन नहीं करता है। एक स्वयं हस्ताक्षरित SSL प्रमाणपत्र के साथ पोर्ट 25 का उपयोग सही ढंग से काम किया।

एमएसडीएन सिस्टम.Net मंच प्रश्न Can SmtpClient be configured to work with a self signed certificate?

9

आप ServerCertificateValidationCallback संपत्ति पर एक नज़र हो सकता है:

ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, sslPolicyErrors) => true; 

यह एक कॉलबैक जो क्रम से पुकारा जाता है जब यह एक SSL प्रमाणपत्र सत्यापित करने की कोशिश करता प्रतिनिधित्व करता है। true लौटने से आप मूल रूप से कहते हैं कि सर्टिफिकेट मान्य है या नहीं - आपको हमेशा परवाह नहीं है -> आप हमेशा इसे स्वीकार करते हैं। बेशक उत्पादन वातावरण में स्वयं हस्ताक्षरित प्रमाण पत्र होना एक अच्छा विचार नहीं है।

+0

मैंने सर्विसपॉइंट कोण को थोड़ा सा देखा लेकिन मैंने यह टिप्पणी सर्विसपॉइंट/सदस्यों के दस्तावेज़ पृष्ठ पर "HTTP कनेक्शन के लिए कनेक्शन प्रबंधन प्रदान करता है" इसलिए मुझे लगता है कि यह एसएमटीपी के लिए उपयोग नहीं किया जाएगा। इसके अलावा जब मैं इसे कोशिश करता हूं और कॉलबैक में लॉग संदेश डालता हूं तो इसे कभी नहीं कहा जाता है। – sipwiz

+4

आपको अपने आवेदन के कुछ वैश्विक प्रारंभिक अनुभाग में आदर्श रूप से 'SmtpClient' क्लास को तुरंत चालू करने के किसी भी प्रयास को करने से पहले ** ** को रखना होगा। –

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