2010-05-28 2 views
10

में ई-मेल भेज रहा है मैं .NET 3.5 का उपयोग कर रहा हूं, और मैं स्वचालित रूप से एक मेल भेजना चाहता हूं।सी #

Microsoft.Office.Interop.Outlook.MailItem mailMsg = 
    (Microsoft.Office.Interop.Outlook.MailItem)outlookApplication.CreateItem(
    Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); 
mailMsg.To = recipient; 
mailMsg.Subject = subject; 
mailMsg.Body = body; 
mailMsg.Send(); 

हालांकि, मैं कई लेख है कि मैं निम्न विधि का उपयोग करना चाहिए मतलब लगते पाया है: मैं वर्तमान में निम्नलिखित का उपयोग कर रहा

System.Net.Mail.MailMessage mailMsg = new System.Net.Mail.MailMessage(); 
mailmsg.To = recipient; 
mailmsg.Subject = subject; 
mailmsg.Body = body; 

किसी को भी मुझे बता सकते हैं क्या बीच का अंतर यदि दो नामस्थान हैं, और आप दूसरे पर एक का उपयोग क्यों करना चाहेंगे?

उत्तर

9

दूसरा उदाहरण एक सीएमटीपी सर्वर की आवश्यकता है, सीधा कनेक्शन बनाने के लिए, और ईमेल भेजने के लिए इस एसएमटीपी सर्वर का उपयोग करता है। यह कम ओवरहेड है, आमतौर पर काम करेगा।

यदि आपको & लिखने की आवश्यकता है तो वर्तमान उपयोगकर्ता के व्यवहार पर एक ईमेल भेजें, आप दृष्टिकोण का उपयोग कर सकते हैं।

अभी तक मैंने केवल दृष्टिकोण के लिए नुकसान के साथ जवाब देखा है। लेकिन इसमें कुछ फायदे हैं:

  • आपको उपयोगकर्ता को किसी भी कॉन्फ़िगरेशन के लिए पूछने की आवश्यकता नहीं है।
    • आउटलुक को पहले से ही एक्सचेंज/एसएमटीपी सर्वर,
    • और उपयोगकर्ता
  • ईमेल आपके द्वारा भेजे उपयोगकर्ता के द्वारा भेजे गए आइटम सूची में संग्रहीत किया जाएगा का ईमेल पता जानता है। तो उपयोगकर्ता देख सकता है कि उसके नाम पर wat भेजा गया है।
  • ऐड-ऑन जो आउटगोइंग ईमेल को साइन/एन्क्रिप्ट करते हैं, या एक मानक कंपनी अस्वीकरण जोड़ते हैं, तो आप कंपनी नीतियों का पालन करेंगे
  • उपयोगकर्ता को ईमेल भेजने की अनुमति होने पर संकेत दे सकता है (हाँ, यह एक हो सकता है लाभ)
  • आप केवल मेल लिखना चुन सकते हैं, इसे उपयोगकर्ता को प्रस्तुत कर सकते हैं। उपयोगकर्ता इसे संपादित या संपादित करने के लिए संपादित और चुन सकते हैं।

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

आउटलुक विधि जिसका उपयोग मैं अपने उपयोगकर्ताओं के व्यवहार पर अन्य मनुष्यों के लिए मेल भेजने के लिए करता हूं। ये मेल धीमे हैं, लेकिन ट्रैक करने योग्य हैं, आदि

3

पहला एक COM इंटरऑप का उपयोग करता है, जो अनियंत्रित ओवरहेड है। दूसरा शुद्ध है। इसकी सभी सुविधाओं के साथ। इसके अलावा यह अधिक लचीला है।

10

पहला, मुझे लगता है कि, मशीन में Outlook को स्थापित करने की आवश्यकता है ताकि Office Interop assemblies इंस्टॉल हो जाएं। दूसरा एक शुद्ध नेट फ्रेमवर्क है।

+3

यह भी ध्यान देने योग्य है कि तत्काल दृष्टिकोण के लिए ओवरहेड छोटा नहीं है। – Paddy

5

पहली विधि Outlook (outlookApplication) का उदाहरण बनाकर इंटरऑप का उपयोग कर रही है और Outlook का वह उदाहरण ई-मेल भेजता है।

दूसरे का उपयोग नियमित रूप से पुराने एसएमटीपी पर ई-मेल भेजने के लिए किया जाता है और इसके लिए दृष्टिकोण की आवश्यकता नहीं होती है।

जब तक आपके पास इंटरऑप के लिए विशिष्ट ज़रूरत नहीं है, तब तक Outlook का उपयोग करके ई-मेल भेजने की आवश्यकता नहीं है (और आपका कोड किसी भी मशीन पर काम नहीं करेगा जिसमें Outlook स्थापित नहीं है)।

1

पहला व्यक्ति एमएस ऑफिस का उपयोग कर रहा है जिसे आप प्रकाशित नहीं करना चाहते हैं, जबकि System.Net.Mail उपलब्ध है जब नेट फ्रेमवर्क स्थापित है।

1

पहला उदाहरण Office Interop Assemblies डाउनलोड द्वारा स्थापित पुस्तकालयों का उपयोग करता है।

दूसरा उदाहरण डिफ़ॉल्ट रूप से .NET Framework, System.Net के साथ स्थापित पुस्तकालयों का उपयोग करता है।

पहला उदाहरण माइक्रोसॉफ्ट इंटरऑप पुस्तकालयों का उपयोग करता है। मैं आपके दूसरे उदाहरण के साथ जाऊंगा, क्योंकि यह डिफ़ॉल्ट .NET इंस्टॉल का हिस्सा है। इंटरऑप पुस्तकालयों में अधिक ओवरहेड होगा जो कि आवश्यक नहीं है।

1

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

System.Net.Mail शुद्ध .NET, और निर्दिष्ट SMTP सर्वर को भेजने के लिए उपयोग करता है मेल। मेरा विश्वास करो .. जब तक आवश्यकता न हो, कार्यालय का उपयोग करने से बचें।

+0

क्लिकवाईज़ नामक एक ऐप है जो अजीब पॉप-अप को हटा देता है (या आपकी तरफ से क्लिक करता है)। लिंक http://www.contextmagic.com/express-clickyes/ है। मुझे कहना है कि मैं आपके साथ Outlook.N Outlook प्लग-इन का उपयोग करने के बजाय System.Net.Mail रणनीति पर 100% सहमत हूं। रैपर मुझे मोड़ के चारों ओर ड्राइव। – Koekiebox

1

आपको किसी भी दिन दूसरे विकल्प का उपयोग करने की आवश्यकता है। यह शुद्ध .NET है।

यदि आप पहले विकल्प का उपयोग करते हैं, तो मुझे लगता है कि Outlook उस मशीन में स्थापित होना चाहिए था। जब आप तैनात करते हैं, तो आपके पास समस्या होगी यदि आपके पास सर्वर में MS Office स्थापित नहीं है।

2

वे अलग हैं। MailItem Outlook में संदेश आइटम का प्रतिनिधित्व करता है। MailMessage एक ई-मेल संदेश का प्रतिनिधित्व करता है जिसे SmtpClient क्लास का उपयोग करके भेजा जा सकता है।

MailItem और MailMessage देखें।

2

पहला एक COM इंटरऑप का उपयोग कर रहा है और Outlook को इसके आधार के रूप में उपयोग करता है। इसे दृष्टिकोण को कॉन्फ़िगर करने की आवश्यकता है। दूसरा एसएमटीपी क्लाइंट का उपयोग कर रहा है। इंटरऑप आपको दृष्टिकोण से संबंधित मुद्दों में चला सकता है, लेकिन मेल विंडो खोलने जैसी कुछ शानदार सुविधाओं की अनुमति देगा (लेकिन यह आमतौर पर इसके लायक नहीं है)। दूसरा एक मूक मेल भेज देगा, हालांकि आप अपनी खुद की कुछ खिड़की दिखा सकते हैं, लेकिन फिर भी यह आउटलुक ऑटोमेशन की लचीलापन की अनुमति नहीं देगा। मेरी पसंद System.Net.Mail है। *।

3

जैसा कि अन्य ने उल्लेख किया है, पहला ईमेल भेजने के लिए दृष्टिकोण का उपयोग करता है। नुकसान यह है कि उपयोगकर्ता को दृष्टिकोण स्थापित करना है; इसका फायदा यह है कि ऐसा लगता है कि दृष्टिकोण इसे भेज रहा है।

दूसरी विधि सीधे मेल भेजने का प्रयास करेगी। इसका फायदा यह है कि इसे स्थापित करने के दृष्टिकोण की आवश्यकता नहीं है, और बहुत कम ओवरहेड है। इस विकल्प के साथ नुकसान यह है कि इन दिनों अधिकांश उद्यम पोर्ट 25 को अवरुद्ध करते हैं, इसलिए जब आप संदेश भेजने का प्रयास करते हैं, तो यह असफल हो जाएगा।

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

  • कोई संबंधित समस्या नहीं^_^