C# (.NET) पर ईमेल भेजना: System.Net.Mail लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) पर ईमेल भेजना: System.Net.Mail के लिए पूर्ण मार्गदर्शिका

.NET प्लेटफ़ॉर्म पर आधुनिक विकास में, ईमेल भेजने का कार्य मानक लाइब्रेरी System.Net.Mail द्वारा हल किया जाता है। यह अंतर्निहित टूल अतिरिक्त NuGet पैकेज स्थापित करने की आवश्यकता नहीं रखता है और SMTP-सर्वर के माध्यम से मेल संदेश बनाने और भेजने के लिए एक लचीला API प्रदान करता है। इस लेख में, हम लाइब्रेरी के सभी प्रमुख घटकों का विस्तार से विश्लेषण करेंगे, कोड उदाहरण, त्रुटि प्रबंधन और सर्वोत्तम प्रथाओं पर विचार करेंगे।



लाइब्रेरी के मुख्य वर्ग

System.Net.Mail लाइब्रेरी में तीन मुख्य वर्ग शामिल हैं:

  • SmtpClient — SMTP-सर्वर से कनेक्शन और संदेश भेजने के लिए जिम्मेदार है।
  • MailMessage — पत्र का प्रतिनिधित्व करता है: विषय, मुख्य भाग, प्रेषक, प्राप्तकर्ता, अटैचमेंट।
  • Attachment — पत्र में फ़ाइलें जोड़ने की अनुमति देता है।


ईमेल भेजने का मूल उदाहरण

आइए एक सरल परिदृश्य पर विचार करें: Gmail SMTP-सर्वर के माध्यम से एक टेक्स्ट पत्र भेजना। कृपया ध्यान दें कि Gmail के साथ काम करने के लिए दो-कारक प्रमाणीकरण के कारण ऐप पासवर्ड (App Password) की आवश्यकता होगी।

using System;using System.Net;using System.Net.Mail;

class Program{ static void Main() { var fromAddress = new MailAddress("your@gmail.com", "आपका नाम"); var toAddress = new MailAddress("recipient@example.com", "प्राप्तकर्ता"); const string fromPassword = "आपका_ऐप_पासवर्ड"; const string subject = ".NET से परीक्षण पत्र"; const string body = "नमस्ते! यह पत्र C# का उपयोग करके भेजा गया है।";

var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) };

using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { smtp.Send(message); }

Console.WriteLine("पत्र भेज दिया गया!"); }}


अटैचमेंट के साथ HTML पत्र भेजना

अक्सर संलग्न फ़ाइलों के साथ HTML प्रारूप में पत्र भेजने की आवश्यकता होती है। इसके लिए IsBodyHtml = true प्रॉपर्टी सेट करें और Attachments कलेक्शन का उपयोग करें।

using (var message = new MailMessage(fromAddress, toAddress)){    message.Subject = "मासिक रिपोर्ट";    message.IsBodyHtml = true;    message.Body = "<h2>नमस्ते!</h2><p>आपकी रिपोर्ट अटैचमेंट में है।</p>";

// अटैचमेंट जोड़ें var attachment = new Attachment(@"C:\\reports\\report.pdf"); message.Attachments.Add(attachment);

smtp.Send(message);}


एसिंक्रोनस भेजना (async/await)

आधुनिक अनुप्रयोगों में नॉन-ब्लॉकिंग भेजने के लिए SendMailAsync का उपयोग करें। यह विशेष रूप से वेब अनुप्रयोगों (ASP.NET Core) और UI वाले डेस्कटॉप प्रोग्रामों में महत्वपूर्ण है।

public async Task SendEmailAsync(){    using (var message = new MailMessage(fromAddress, toAddress)    {        Subject = "एसिंक्रोनस भेजना",        Body = "पत्र एसिंक्रोनस रूप से भेजा गया"    })    {        await smtp.SendMailAsync(message);    }}


अपवाद प्रबंधन

मेल सर्वर के साथ काम करते समय त्रुटियाँ हो सकती हैं: गलत क्रेडेंशियल, टाइमआउट, DNS समस्याएँ। हमेशा भेजने के कोड को try-catch में लपेटें।

try{    smtp.Send(message);    Console.WriteLine("सफलतापूर्वक भेजा गया।");}catch (SmtpException ex){    Console.WriteLine($"SMTP त्रुटि: {ex.StatusCode} - {ex.Message}");}catch (Exception ex){    Console.WriteLine($"सामान्य त्रुटि: {ex.Message}");                    

अनुशंसाएँ