2010-01-13 23 views
41

के माध्यम से ईमेल भेजें HIPAA नियमों का अनुपालन करने के लिए, हमें किसी बाहरी साइट (फ़ायरवॉल के बाहर) से एक आंतरिक एक्सचेंज सर्वर (फ़ायरवॉल के अंदर) से ईमेल भेजने की आवश्यकता है। हमारे एक्सचेंज व्यवस्थापक हमें बताते हैं कि हमें वेब सर्वर से ईमेल सर्वर पर मेल भेजने के लिए टीएलएस एन्क्रिप्शन का उपयोग करने की आवश्यकता है।सी # एएसपी.नेट टीएलएस

मैंने पहले कभी भी टीएलएस का उपयोग नहीं किया है और मैं इससे बहुत परिचित नहीं हूं। Google पर खोज के रूप में कई भुगतान के लिए उपयोग पुस्तकालयों लाया। क्या .NET के मूल निवासी हैं जो इसे पूरा करेंगे? यदि हां, तो मैं इसे कैसे कॉन्फ़िगर कर सकता हूं? यदि नहीं, तो क्या कुछ मुफ्त या खुला स्रोत है?

वर्तमान विन्यास:

  • ASP.NET सी # वेब अनुप्रयोग
  • 2.0 फ्रेमवर्क
  • एसएमटीपी
  • माध्यम से ईमेल और संलग्नक भेजने के लिए System.Net.Mail का उपयोग IIS 6,0
+4

'SmtpClient.EnableSsl = true;'? –

उत्तर

52

टीएलएस (ट्रांसपोर्ट लेवल सिक्योरिटी) थोड़ा व्यापक शब्द है जिसने HTTP संचार को सुरक्षित करने में एसएसएल (सिक्योर सॉकेट लेयर) को बदल दिया है। तो आपको क्या करने के लिए कहा जा रहा है एसएसएल सक्षम है।

+5

धन्यवाद! वह गूंगा आसान था! – Joshua

+1

किसी के पास एक ही समस्या थी: http://bytes.com/topic/net/answers/671675-smtpclient-enablessl-using-tls –

+3

प्रत्येक एसएमटीपी सर्वर टीएसएल और एसएसएल दोनों का समर्थन नहीं करते हैं। – cgalvao1993

22

SmtpClient पर एक सक्षम एसएसएल संपत्ति है जिसे आप सेट करेंगे।

अर्थात

SmtpClient client = new SmtpClient(exchangeServer); 
client.EnableSsl = true; 
client.Send(msg); 
+1

मुझे यह पोस्ट पसंद है क्योंकि मुझे लगता है कि यह एक अच्छा जवाब है, लेकिन मैं अभी भी थोड़ा चिंतित हूं। यदि हम EnableSSL को सत्य पर सेट करते हैं, तो क्या यह * गारंटी * होगा * * सभी * ईमेल सर्वर * मूल ईमेल सर्वर के बीच * ईमेल सर्वर प्राप्त करने और एसएसएल या टीएलएस प्राप्त करने के बीच? मेरी समझ से, ईमेल कभी-कभी * कई * सर्वरों पर अपने अंतिम गंतव्य तक पहुंचने से पहले उछाल सकता है। –

+3

@ShawnEary नहीं, यह नहीं है। इसका मतलब यह है कि आपके .NET SMTP क्लाइंट और प्रारंभिक SMTP सर्वर के बीच कनेक्शन सुरक्षित है - यही वह है। और कुछ नहीं। ईमेल संदेश का पूरा मार्ग पूरा करने के लिए एसएमटीपी में कोई प्रावधान नहीं है, यही कारण है कि हमारे पास संदेश एन्क्रिप्शन के लिए एस/एमआईएम है। – Dai

17

मैं लगभग उसी तकनीक का उपयोग किया गया था के रूप में तुमने किया था, फिर भी मैं WinForms पर Office 365 मंच के माध्यम से एक एक्सचेंज सर्वर से कनेक्ट करने के लिए अपने एप्लिकेशन का उपयोग करके किया गया था। मेरे पास भी वही समस्या थी जैसा आपने किया था, लेकिन कोड का उपयोग करके पूरा करने में सक्षम था जिसमें अन्य लोगों ने जो कुछ दिया है उसका मामूली संशोधन किया है।

SmtpClient client = new SmtpClient(exchangeServer, 587); 
client.Credentials = new System.Net.NetworkCredential(username, password); 
client.EnableSsl = true; 
client.Send(msg); 

मैं पोर्ट 587, निश्चित रूप से TSL से अधिक डिफ़ॉल्ट पोर्ट है और प्रमाणीकरण किया जो उपयोग करने के लिए किया था।

+0

@hiFl महोदय, एसएसएल के लिए डिफ़ॉल्ट बंदरगाह के बारे में क्या, अगर मैं एसएमटीपी क्लाइंट को एसएसएल चुनने के लिए टीएलएस नहीं चाहता हूं? –

+1

465 [दस्तावेज़ कहता है] के रूप में (https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl(v=vs.110).aspx) – hiFI

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