2011-03-10 15 views
5

पर भेजने के बीच अंतर मैं SMTPClient क्लास का उपयोग करके वितरण के लिए किसी SMTP सर्वर पर प्रेषित ई-मेल संदेश बनाने के लिए MailMessage class का उपयोग करने का प्रयास कर रहा हूं। मेरा ईमेल एक्सचेंज सर्वर के माध्यम से Outlook पर कॉन्फ़िगर किया गया है। उपर्युक्त कार्यान्वयन के संबंध में मुझे निम्नलिखित संदेह थे:किसी Exchange सर्वर पर MailMessage भेजने और एक SMTP सर्वर

1) एक्सचेंज सर्वर और एक एसएमटीपी सर्वर के बीच क्या अंतर है?

2) मेरे मामले में, मेरा दृष्टिकोण मेरे प्रमाण पत्र का उपयोग कर एक्सचेंज सर्वर पर कॉन्फ़िगर किया गया है। मुझे एसएमटीपी पता कैसे मिल सकता है ताकि मैं MailMessage क्लास को कार्यान्वित कर सकूं?

3) उपर्युक्त कार्यान्वयन तकनीक संभव नहीं है तो एक्सचेंज सर्वर के आधार पर आवेदन के माध्यम से ईमेल भेजने का कोई विचार?

मैं विज़ुअल स्टूडियो 2008, फ्रेमवर्क 3.5 एसपी 1 का उपयोग कर रहा हूं, सी # के साथ विनफॉर्म एप्लिकेशन पर काम कर रहा हूं। कृपया मुझे अपने संदेहों को दूर करने में मदद करें।

संपादित

मैं निम्नलिखित कोड का उपयोग कर रहा हूँ। यह कोई त्रुटि नहीं फेंकता है, न ही यह काम करता है। मैं भेजने के लिए और अपने आप को ईमेल कोई लाभ नहीं हुआ

public static void CreateMessageWithAttachment(string server) 
    { 
     // Specify the file to be attached and sent. 
     // This example assumes that a file named Data.xls exists in the 
     // current working directory. 
     string file = "data.xls"; 
     // Create a message and set up the recipients. 
     MailMessage message = new MailMessage(
      "[email protected]", 
      "[email protected]", 
      "Quarterly data report.", 
      "See the attached spreadsheet."); 

     // Create the file attachment for this e-mail message. 
     Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); 
     // Add time stamp information for the file. 
     ContentDisposition disposition = data.ContentDisposition; 
     disposition.CreationDate = System.IO.File.GetCreationTime(file); 
     disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); 
     disposition.ReadDate = System.IO.File.GetLastAccessTime(file); 
     // Add the file attachment to this e-mail message. 
     message.Attachments.Add(data); 

     //Send the message. 
     SmtpClient client = new SmtpClient(server); 
     // Add credentials if the SMTP server requires them. 
     client.Credentials = CredentialCache.DefaultNetworkCredentials; 

    try { 
      client.Send(message); 
     } 
     catch (Exception ex) { 
      Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", 
       ex.ToString());    
     } 

     data.Dispose(); 
    } 
+0

@Phoenix: contoso.com एक उदाहरण डोमेन है।वे ईमेल वास्तविक नहीं हैं। उन्हें मर्ज करने की जरूरत नहीं है। – BoltClock

उत्तर

5

1) एक एक्सचेंज सर्वर और एक एसएमटीपी सर्वर में क्या अंतर है करने के लिए बू कोशिश कर रहा हूँ?

एक्सचेंज सर्वर में अधिक सामान शामिल है।

2) मेरे मामले में, मेरा दृष्टिकोण मेरे प्रमाण पत्र का उपयोग कर एक्सचेंज सर्वर पर कॉन्फ़िगर किया गया है। मुझे एसएमटीपी पता कैसे मिल सकता है ताकि मैं MailMessage क्लास को कार्यान्वित कर सकूं?

आउटलुक -> टूल्स -> खाते -> खाता संपादित करें।

यह एक्सचेंज सर्वर के समान पता है। पोर्ट 25 मानक एसएमटीपी पोर्ट है। एक्सचेंज प्रमाणीकरण की आवश्यकता हो सकती है।

3) उपरोक्त कार्यान्वयन तकनीक संभव नहीं है तो एक्सचेंज सर्वर के आधार पर आवेदन के माध्यम से ईमेल भेजने का कोई विचार?

आप केवल MailMessage का उपयोग नहीं कर सकते हैं, आपको SmtpClient भी आवश्यकता होगी।

उदाहरण एक्सचेंज का उपयोग: Getting a sent MailMessage into the "Sent Folder"

+0

त्वरित उत्तर के लिए धन्यवाद। मैंने अपने प्रश्न को उस कोड के साथ अपडेट किया है जिसका उपयोग मैं समाधान प्राप्त करने के लिए कर रहा हूं। कृपया जांचें कि क्या आप मेरे कोड – reggie

+0

में किसी भी त्रुटि को समझ सकते हैं 1. क्या आपने अनुलग्नक के बिना प्रयास किया है? 2. क्या आप वाकई सही सर्वर पते का उपयोग कर रहे हैं? 3) क्या आपने मैन्युअल रूप से प्रमाण-पत्र निर्दिष्ट करके कोशिश की है? – jgauffin

+0

आपके सभी सवालों का जवाब हां है। हालांकि, उदाहरण के लिए मेरा एक्सचेंज सर्वर पता abcd.abc.company.com है जो काम नहीं करता है। तो अभी मैंने एसएमटीपी पोर्टनंबर निर्दिष्ट करने के लिए इसे abcd.abc.company.com:25 में बदल दिया है। लेकिन यह भी काम नहीं करता है। – reggie

2

SMTP एक प्रोटोकॉल, दो प्रणालियों के बीच संचार को नियंत्रित करने वाले नियमों का एक सेट है। यह प्रोटोकॉल मेल भेजने के नियमों को परिभाषित करता है।

एक एसएमटीपी सर्वर एक घटक (ज्यादातर सॉफ्टवेयर) है जो मेल भेजने के लिए इस प्रोटोकॉल का उपयोग करता है।

एमएस एक्सचेंज मेल भेजने के लिए एसएमटीपी का उपयोग करता है, लेकिन यह डोमेन पर उपयोगकर्ताओं के लिए उपयोगकर्ताओं और मेलबॉक्स को भी नियंत्रित करता है।

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