C# में कस्टमाइज़्ड विकल्पों के साथ ईमेल संदेश बनाएं

नया ईमेल संदेश बनाएं

नया ईमेल संदेश बनाने के लिए आप उपयोग कर सकते हैं MailMessage क्लास। MailMessage क्लास भी बनाए गए ईमेल संदेश की प्रॉपर्टीज़ को इनिशियलाइज़ करती है जैसे प्रेषक का ईमेल पता, प्राप्तकर्ताओं के ईमेल पते, ईमेल का विषय, और HTML फ़ॉर्मेट में ईमेल बॉडी कंटेंट।

नए ईमेल संदेश को बनाने और उसकी प्रॉपर्टीज़ सेट करने के विस्तृत चरणों के साथ नीचे दिया गया कोड देखें।

  1. एक नया उदाहरण बनाएं MailMessage क्लास।
  2. सेट करें From प्रॉपर्टी जो प्रेषक के ईमेल पते को सेट करती है।
  3. सेट करें प्रति प्रॉपर्टी जो प्राप्तकर्ताओं के ईमेल पते की कॉमा-सेपरेटेड सूची सेट करती है।
  4. सेट करें Subject प्रॉपर्टी जो ईमेल के विषय को सेट करती है।
  5. सेट करें HtmlBody प्रॉपर्टी जो ईमेल बॉडी की HTML सामग्री को सेट करती है।
// Create a new instance of MailMessage class
var message = new MailMessage
{
    From = "from@domain.com",
    To = "to1@domain.com, to2@domain.com",
    Subject = "New message",
    HtmlBody = @"<!DOCTYPE html>
    <html>
     <head>
      <style>
       h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;}
       p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal;
         font-weight:normal;color:#000000;background-color:#ffffff;}
      </style>
     </head>
     <body>
       <h3>New message</h3>
       <p>This is a new message created by Aspose.Email.</p>
     </body>
    </html>"
};

डिफ़ॉल्ट टेक्स्ट एन्कोडिंग सेट करें

निम्नलिखित प्रॉपर्टीज़ के लिए डिफ़ॉल्ट टेक्स्ट एन्कोडिंग सेट करें:

  • From: डिस्प्ले नाम
  • To: डिस्प्ले नाम
  • Subject
  • बॉडी

उपयोग करें MailMessage.PreferredTextEncoding प्रॉपर्टी जो सुनिश्चित करती है कि उपरोक्त प्रॉपर्टीज़ में सभी टेक्स्ट ईमेल संदेश में सही ढंग से एन्कोडेड हों। निम्नलिखित कोड स्निपेट दर्शाता है कि ईमेल पतों, विषय और बॉडी के डिस्प्ले नाम के रूप में फ्रेंच शब्द कैसे उपयोग करें।

मेल बॉडी सेट करें

सादा टेक्स्ट बॉडी सेट करें

एक मेल बॉडी को उपयोग करके निर्दिष्ट किया जा सकता है बॉडी की प्रॉपर्टी MailMessage क्लास।

// Declare message as MailMessage instance
var eml = new MailMessage
{
    // Specify HtmlBody
    Body = "This is a plain text body"
};

HTML बॉडी सेट करें

एक मेल बॉडी को भी उपयोग करके निर्दिष्ट किया जा सकता है HtmlBody की प्रॉपर्टी MailMessage क्लास।

// Declare message as MailMessage instance
var eml = new MailMessage
{
    // Specify HtmlBody
    HtmlBody = "<html><body>This is the HTML body</body></html>"
};

वैकल्पिक टेक्स्ट सेट करें

EML फ़ाइल में एक वैकल्पिक व्यू ईमेल सामग्री का एक अतिरिक्त प्रतिनिधित्व है जिसे ईमेल संदेश के अलग रेंडरिंग प्रदान करने के लिए उपयोग किया जा सकता है। उदाहरण के लिए, यदि आप एक संदेश HTML में भेजते हैं, तो आप एक plain text संस्करण भी प्रदान करना चाह सकते हैं ताकि कुछ प्राप्तकर्ता ऐसे ईमेल रीडर उपयोग करें जो HTML सामग्री प्रदर्शित नहीं कर सकते। इस उद्देश्य के लिए उपयोग करें AlternateView class। इस क्लास में दो प्रॉपर्टीज़ हैं, LinkedResources और BaseUri, जो ईमेल की सामग्री में URLs को हल करने के लिए उपयोग होते हैं।

  • LinkedResources का संग्रह है LinkedResource ऑब्जेक्ट्स। जब रेंडर किया जाता है, तो ईमेल सामग्री में URLs पहले प्रत्येक की Content Link में URLs के साथ मिलते हैं LinkedResource ऑब्जेक्ट में LinkedResources संग्रह में और हल किया जाता है।
  • BaseUri मेल रीडर द्वारा बॉडी में सापेक्ष URLs को हल करने के लिए उपयोग किया जाता है, और साथ ही कंटेंट लिंक URLs को भी हल करने के लिए, LinkedResources संग्रह।

वैकल्पिक टेक्स्ट सेट करने के लिए विस्तृत चरणों के साथ निम्नलिखित कोड पर विचार करें।

  1. का एक इंस्टेंस बनाएं MailMessage क्लास।
  2. Create AlternateView एक स्ट्रिंग में निर्दिष्ट सामग्री का उपयोग करके ईमेल संदेश को देखने के लिए।
  3. वैकल्पिक टेक्स्ट जोड़ें, उपयोग करके Add की विधि MailMessage.AlternateViews संग्रह।
// Declare message as MailMessage instance
var eml = new MailMessage();

// Creates AlternateView to view an email message using the content specified in the //string
var alternate = AlternateView.CreateAlternateViewFromString("Alternate Text");

// Adding alternate text
 eml.AlternateViews.Add(alternate);

मेल बॉडी एन्कोडिंग निर्दिष्ट करें

Aspose.Email उपयोग करता है BodyEncoding की प्रॉपर्टी MailMessage class, ईमेल बॉडी एन्कोडिंग निर्दिष्ट करने के लिए। उदाहरण के लिए:

eml.BodyEncoding = Encoding.UTF8;

कई प्राप्तकर्ताओं को निर्दिष्ट करें

ईमेल संदेश के प्राप्तकर्ताओं को निर्दिष्ट करने के तीन तरीके हैं: To, CC, या BCC फ़ील्ड का उपयोग करके।

  • To फ़ील्ड आपके संदेश का मुख्य प्राप्तकर्ता होता है। आप इस फ़ील्ड में एक या अधिक ईमेल पते कॉमा द्वारा अलग करके दर्ज कर सकते हैं। To फ़ील्ड हर ईमेल संदेश के लिए अनिवार्य है।

  • CC फ़ील्ड carbon copy के लिए खड़ा है। इसका उपयोग आपके संदेश की कॉपी उन अन्य लोगों को भेजने के लिए किया जाता है जो विषय में रुचि रखते हैं या शामिल हैं। CC फ़ील्ड वैकल्पिक है और इसमें भी कई ईमेल पते हो सकते हैं। CC फ़ील्ड के प्राप्तकर्ता देख सकते हैं कि कौन और संदेश प्राप्त कर रहा है।

  • BCC फ़ील्ड blind carbon copy के लिए खड़ा है। यह CC फ़ील्ड के समान है, लेकिन BCC फ़ील्ड के प्राप्तकर्ता अन्य प्राप्तकर्ताओं से छिपे होते हैं। यह तब उपयोगी होता है जब आप कुछ प्राप्तकर्ताओं की गोपनीयता बचाना चाहते हैं या उनके इनबॉक्स को उत्तरों से भरना नहीं चाहते। BCC फ़ील्ड वैकल्पिक है और इसमें कई ईमेल पते हो सकते हैं।

निम्नलिखित कोड पर विचार करें, विस्तृत चरणों के साथ, ताकि ईमेल संदेश के कई प्राप्तकर्ताओं को निर्दिष्ट किया जा सके।

कोड चरण:

  1. एक नया उदाहरण बनाएं MailMessage क्लास।
  2. सेट करें From प्रॉपर्टी जो प्रेषक के ईमेल पते को सेट करती है।
  3. सेट करें प्रति प्रॉपर्टी, प्राथमिक प्राप्तकर्ताओं के ईमेल पतों की एरे को निर्दिष्ट करती है।
  4. सेट करें CC प्रॉपर्टी, उन प्राप्तकर्ताओं के ईमेल पतों की एरे को निर्दिष्ट करती है जिन्हें ईमेल की कॉपी मिलेगी।
  5. सेट करें Bcc प्रॉपर्टी, उन प्राप्तकर्ताओं के ईमेल पतों की एरे को निर्दिष्ट करती है जिन्हें ईमेल की ब्लाइंड कार्बन कॉपी मिलेगी।

कोड उदाहरण:

var eml = new MailMessage
{
    // Specify From address
    From = "sender@sender.com",
    //  Specify recipients’ mail addresses
    To = {"receiver1@receiver.com", "receiver2@receiver.com", "receiver3@receiver.com"},
    // Specify CC addresses
    CC = {"CC1@receiver.com", "CC2@receiver.com"},
    // Specify BCC addresses
    Bcc = {"Bcc1@receiver.com", "Bcc2@receiver.com"}
};

ईमेल पतों में डिस्प्ले नाम जोड़ें

ईमेल पते के साथ, एक display name जोड़ कर प्रेषक या प्राप्तकर्ता की पहचान की जा सकती है। इसमें व्यक्ति का पूरा नाम, उपनाम, या अन्य पहचानकर्ता शामिल हो सकता है।

जब एक ईमेल संदेश को ईमेल क्लाइंट या वेबमेल इंटरफ़ेस में प्रदर्शित किया जाता है, तो डिस्प्ले नाम आमतौर पर ईमेल पते के साथ दिखता है, जिससे उपयोगकर्ता के लिए यह पहचानना आसान हो जाता है कि संदेश किसने भेजा है या किसे संबोधित है। ईमेल संदेश में ईमेल पतों के साथ डिस्प्ले नाम जोड़ने के लिए, निम्नलिखित कोड को विस्तृत चरणों के साथ विचार करें:

  1. फ़ाइल से ईमेल संदेश लोड करें, उपयोग करके MailMessage.Load विधि।
  2. ईमेल का प्रेषक सेट करें, उपयोग करके From eml ऑब्जेक्ट की प्रॉपर्टी, एक नया बनाकर MailAddress ऑब्जेक्ट जिसमें प्रेषक का ईमेल पता और डिस्प्ले नाम हो।
  3. ईमेल में प्राप्तकर्ता जोड़ने के लिए उपयोग करें To eml ऑब्जेक्ट की प्रॉपर्टी, यदि आवश्यक हो तो CC (Carbon Copy) सूची का उपयोग करके जोड़ें CC प्रॉपर्टी, BCC (Blind Carbon Copy) सूची का उपयोग करके Bcc प्रॉपर्टी और कॉल करें Add एक नए के साथ मेथड MailAddress ऑब्जेक्ट जिसमें प्राप्तकर्ता का ईमेल पता और डिस्प्ले नाम शामिल है।

कोड उदाहरण:

// Load eml from file
var eml = MailMessage.Load(Data.Email/"test.eml");

eml.From = new MailAddress("TimothyFairfield@from.com", "Timothy Fairfield");

// A To address with a friendly name can also be specified like this
eml.To.Add(new MailAddress("kyle@to.com", "Kyle Huang"));

// Specify Cc and Bcc email address along with a friendly name
eml.CC.Add(new MailAddress("guangzhou@cc.com", "Guangzhou Team"));
eml.Bcc.Add(new MailAddress("ahaq@bcc.com", "Ammad ulHaq "));

अतिरिक्त प्रॉपर्टीज़ सेट करें

Aspose.Email के साथ आप अतिरिक्त प्रॉपर्टीज का उपयोग कर सकते हैं MailMessage class जैसे:

  • Date property - ईमेल की date and time सेट करता है। डिफ़ॉल्ट रूप से, तारीख वह वास्तविक तारीख होती है जब संदेश भेजा गया, और समय वह समय होता है जब इसे भेजा गया, जैसा कि Microsoft Outlook द्वारा प्रदर्शित किया जाता है। हालांकि, वास्तविक ईमेल डिलीवरी समय SMTP सर्वर द्वारा मेल हेडर में जोड़ा जाता है। उदाहरण के लिए, नीचे एक सामान्य मेल हेडर है, जहाँ Date Date फ़ील्ड सेट करता है।

    // For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
    
    // Add by SMTP server in delivery emails
    Received: from ip-123.56.99.216.dsl-cust.ca.inter.net ([216.99.56.123]) by Aspose.secureserver.net with MailEnable ESMTP; Thu, 22 Feb 2007 13:58:57 -0700
    
    // Add by SMTP server in delivery emails
    Return-Path: <xyz@oikoscucine.it>
    
    // Add by SMTP server in delivery emails
    Received: from 195.120.225.20 (HELO mail.oikoscucine.it)
    by aspose.com with esmtp (:1CYY+<LA*- *1WK@)
    id Q8,/O/-.N83@7-9M
    for abc@aspose.com; Thu, 22 Feb 2007 20:58:51 +0300
    From: "XYZ" <xyz@oikoscucine.it>
    To: <abc@aspose.com>
    Subject: For ABC
    
    // Date will set the Date field, outlook will show this as
    Date: Thu, 22 Feb 2007 20:58:51 +0300
    Message-ID: <01c756c4$41b554d0$6c822ecf@dishonestyinsufferably>
    MIME-Version: 1.0
    Content-Type: multipart/alternative;
    boundary="----=_NextPart_000_0006_01C7569A.58DF4CD0"
    X-Mailer: Microsoft Office Outlook, Build 11.0.5510
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
    Thread-Index: Aca6Q:=ES0M(9-=(<.<1.<Q9@QE6CD==
    X-Read: 1
    
  • MailPriority enumeration- ईमेल संदेश भेजने के लिए प्राथमिकता स्तर निर्दिष्ट करता है। यह कम, सामान्य या उच्च हो सकता है। प्राथमिकता ट्रांसमिशन गति और डिलीवरी को प्रभावित करती है।

  • MailSensitivity enumeration - पाँच संवेदनशीलता स्तरों को निर्दिष्ट करता है।

  • XMailer- वह सॉफ़्टवेयर निर्दिष्ट करता है जिसने ई-मेल संदेश बनाया।

नीचे दिया गया कोड स्निपेट दर्शाता है कि ऊपर चर्चा किए गए प्रत्येक प्रॉपर्टी का उपयोग कैसे किया जा सकता है।

var eml = new MailMessage("sender@gmail.com", "receiver@gmail.com", "Some subject", "Some body text")
{
    Date = DateTime.Now,
    Priority = MailPriority.High,
    Sensitivity = MailSensitivity.Normal,
    Xmailer = "Aspose.Email"
};

रीड रिसीट का अनुरोध करें

एक अनुरोध करने के लिए रीड रिसीट, Aspose.Email का उपयोग करें DeliveryNotificationOptions की प्रॉपर्टी MailMessage class। यह प्रॉपर्टी मानों को रखती है। DeliveryNotificationOptions enumeration।

निम्नलिखित code sample पर विचार करें:

// Create an Instance of MailMessage class
var eml = new MailMessage
{
    // Specify From, To, HtmlBody, DeliveryNotificationOptions field
    From = "sender@sender.com",
    To = "receiver@receiver.com",
    HtmlBody = "<html><body>This is the Html body</body></html>",
    DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess
};

eml.Headers.Add("Return-Receipt-To", "sender@sender.com");
eml.Headers.Add("Disposition-Notification-To", "sender@sender.com");

// Create an instance of SmtpClient Class
var client = new SmtpClient
{
    // Specify your mailing host server, Username, Password and Port No
    Host = "smtp.server.com",
    Username = "Username",
    Password = "Password",
    Port = 25
};

try
{
    // Client.Send will send this message
    client.Send(eml);
    // Display ‘Message Sent’, only if message sent successfully
    Console.WriteLine(@"Message sent");
}
catch (Exception ex)
{
    System.Diagnostics.Trace.WriteLine(ex.ToString());
}

नोट: रीड रिसीट अनुरोध हमेशा नहीं माने जा सकते क्योंकि:

  • एक मेल क्लाइंट वह कार्यक्षमता लागू नहीं कर सकता।
  • अंत उपयोगकर्ता ने उस कार्यक्षमता को बंद कर रखा हो सकता है।
  • अंत उपयोगकर्ता इसे न भेजने का चयन कर सकता है।

ईमेल हेडर को कस्टमाइज़ करें

ईमेल हेडर इंटरनेट मानक को दर्शाते हैं और RFC हेडर फ़ील्ड्स को परिभाषित करता है जो इंटरनेट ईमेल संदेशों में शामिल होते हैं। ईमेल हेडर को इस का उपयोग करके निर्दिष्ट किया जा सकता है: MailMessage क्लास। सामान्य हेडर टाइप्स इस में परिभाषित होते हैं: HeaderType class। यह एक sealed क्लास है जो सामान्य enumeration की तरह काम करती है।

सामान्यतः, एक ईमेल हेडर में ये फ़ील्ड्स होते हैं:

  • To: प्राप्तकर्ता पते To फ़ील्ड में निर्दिष्ट किए जा सकते हैं। To फ़ील्ड के प्राप्तकर्ता संदेश के मुख्य दर्शकों होते हैं। एक से अधिक प्राप्तकर्ता पते हो सकते हैं।
  • From: यह फ़ील्ड संदेश प्रेषक का ईमेल पता दर्शाता है।
  • Cc: उपयोगकर्ताओं को संदेश को "Carbon Copy" या "Courtesy Copy" के रूप में भेजने की अनुमति देता है। अर्थात्, प्राप्तकर्ता से उत्तर या कार्रवाई की अपेक्षा नहीं होती। आमतौर पर, पर्यवेक्षी कर्मचारियों को CC द्वारा सूचित किया जाता है।
  • Bcc: Blind Carbon Copy का संक्षिप्त रूप है, जो आपको एक ईमेल ऐसे प्राप्तकर्ता को भेजने देता है जो अन्य प्राप्तकर्ताओं से छिपा रहता है।
  • ReplyTo: यह हेडर फ़ील्ड यह संकेत देता है कि प्रेषक चाहते हैं कि उत्तर कहाँ भेजें।
  • Subject: शीर्षक, हेडिंग, विषय। अक्सर यह अन्य संदेशों को उत्तर देने या टिप्पणी करने वाले संदेशों के थ्रेड संकेतक के रूप में उपयोग किया जाता है।
  • Date: यह हेडर तारीख (और समय) निर्दिष्ट करता है। सामान्यतः यह वह तारीख होती है जब संदेश लिखा गया और भेजा गया था।
  • XMailer: मूलकर्ता के क्लाइंट सॉफ़्टवेयर की जानकारी। उदाहरण: X-Mailer: Aspose.Email XMailer मेल क्लाइंट्स द्वारा उपयोग किया जाता है। विभिन्न मेल क्लाइंट्स के XMailer मान अलग-अलग होते हैं। MS Outlook का XMailer मान Microsoft Office Outlook, Build 11.0.5510 है। इसे ईमेल प्राप्तकर्ता या रीडर द्वारा अनदेखा किया जाता है।

आमतौर पर, एक ईमेल हेडर इस प्रकार दिखता है:

Reply-To: reply@reply.com
From: sender@sender.com
To: guangzhou@guangzhoo.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email

ईमेल हेडर को कस्टमाइज़ करने के लिए, इन code steps का पालन करें:

  • का एक इंस्टेंस बनाएं MailMessage क्लास।
  • एक instance का उपयोग करके To, From, Cc, Bcc, ReplyTo, Subject, Date और XMailer निर्दिष्ट करें MailMessage.
  • का एक इंस्टेंस बनाएं MimeHeader क्लास और कस्टम हेडर निर्दिष्ट करें।
  • कस्टम हेडर को जोड़ें MailMessage इंस्टैंस।

निम्नलिखित कोड स्निपेट दर्शाता है कि ईमेल हेडर कैसे सेट करें।

var eml = new MailMessage
{
    ReplyToList = "reply@reply.com",
    From = "sender@sender.com",
    To = "receiver1@receiver.com",
    CC = "receiver2@receiver.com",
    Bcc = "receiver3@receiver.com",
    Subject = "test mail",
    Date = new System.DateTime(2006, 3, 6),
    XMailer = "Aspose.Email"
};

ऊपर दिया गया कोड स्निपेट निम्न प्रारूप में ईमेल हेडर बनाता है:

Reply-To: reply@reply.com
From: sender@sender.com
To: receiver1@receiver.com
CC: receiver2@receiver.com
BCC: receiver3@receiver.com
Subject: test mail
Date: 6 Mar 2006 8:2:2 +0800
X-Mailer: Aspose.Email

विशिष्ट स्थान पर हेडर डालें

यह Add विधि HeaderCollection क्लास संग्रह के अंत में हेडर डालती है। हालांकि, कभी-कभी हेडर को विशिष्ट स्थान पर डालना आवश्यक हो सकता है। ऐसे मामलों में, यह Add विधि मददगार नहीं होगी। इसे प्राप्त करने के लिए, … का उपयोग करें Insert विधि HeaderCollection. यदि संग्रह में समान नाम के हेडर मौजूद हैं, तो यह हेडर अन्य समान नाम के हेडरों से पहले डाला जाएगा। नीचे दिया गया कोड स्निपेट दिखाता है कि कैसे एक विशिष्ट स्थान पर हेडर डाला जाए।

eml.Headers.Insert("Received", "Value");

कस्टम हेडर जोड़ें

ईमेल हेडर को उपयोग करके निर्दिष्ट किया जा सकता है MailMessage क्लास। एक ईमेल संदेश में कस्टम हेडर निर्दिष्ट करने के लिए, नीचे दिया गया कोड उदाहरण देखें:

eml.Headers.Add("secret-header", "mystery");

ऊपर दिया गया कोड स्निपेट निम्न प्रारूप में ईमेल हेडर बनाता है:

secret-header: mystery

साइन किए गए संदेश बनाएं

Aspose.Email API प्रमाणपत्रों का उपयोग करके साइन किए गए संदेश बनाने की क्षमता प्रदान करता है। यह AttachSignature विधि MailMessage क्लास का उपयोग संदेश को सहेजने या इसे उपयोग करके भेजने के लिए साइन करने में किया जा सकता है SmtpClient.

संदेश को साइन करना

निम्नलिखित कोड स्निपेट दिखाता है कि संदेश को कैसे साइन करें।

डिटैच्ड प्रमाणपत्र विकल्प का उपयोग करना

वेब-आधारित ईमेल क्लाइंट्स साइन किए गए संदेश की बॉडी सामग्री दिखा नहीं सकते। इसे प्रमाणपत्र को भेजने से पहले डिटैच करके संभाला जा सकता है। ओवरलोडेड मेथड में डिटैच्ड फ़्लैग AttachSignature इसे प्राप्त करने के लिए उपयोग किया जा सकता है। यदि true सेट किया जाता है, तो प्रमाणपत्र ईमेल से डिटैच्ड हो जाता है और इसके विपरीत। वेब-आधारित क्लाइंट्स में साइन किए गए संदेश का बॉडी देखने के लिए, आपको बनाना होगा MailMessage डिटैच्ड सिग्नेचर के साथ। निम्नलिखित कोड स्निपेट दिखाता है कि डिटैच्ड प्रमाणपत्र विकल्प का उपयोग कैसे करें।