C# में SMTP क्लाइंट का उपयोग करके ईमेल भेजें, संदेश फ़ॉरवर्ड करें और मेल मर्ज करें

Contents
[ ]

ईमेल भेजना

SmtpClient क्लास के साथ ईमेल भेजें

यह SmtpClient क्लास एप्लिकेशन्स को Simple Mail Transfer Protocol (SMTP) के माध्यम से ईमेल भेजने में सक्षम बनाती है।

इसकी मुख्य विशेषताओं में से एक है क्षमता समूह में संदेश भेजना.

यह पूरी तरह से समर्थन करता है सिंक्रोनस और असिंक्रोनस प्रोग्रामिंग मॉडल्स। ईमेल को तब तक मुख्य थ्रेड को ब्लॉक करते हुए ट्रांसमिट करने के लिए जब तक ऑपरेशन पूरा न हो, डेवलपर्स सिंक्रोनस तरीकों में से एक का उपयोग कर सकते हैं भेजें मेथड्स। वैकल्पिक रूप से, मुख्य थ्रेड को ईमेल भेजते समय जारी रखने के लिए, डेवलपर्स उपयोग कर सकते हैं SendAsync विधि।

अतिरिक्त रूप से, SmtpClient संदेश भेजने को समर्थन करता है ट्रांसपोर्ट न्यूट्रल एनकैप्सुलेशन फॉर्मेट (TNEF).

ईमेल सिंक्रोनस रूप से भेजें

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

  1. का एक इंस्टेंस बनाएं MailMessage क्लास और इसके गुण सेट करें।
  2. का एक इंस्टेंस बनाएं SmtpClient क्लास और होस्ट, पोर्ट, उपयोगकर्ता नाम एवं पासवर्ड निर्दिष्ट करें।
  3. संदेश भेजें उपयोग करके भेजें विधि SmtpClient क्लास और पास करें MailMessage इंस्टैंस।

निम्न C# कोड स्निपेट दिखाता है कि Outlook ईमेल को सिंक्रोनस रूप से कैसे भेजें।

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Declare msg as MailMessage instance
MailMessage msg = new MailMessage();

// Create an instance of SmtpClient class
SmtpClient client = new SmtpClient();

// Specify your mailing host server, Username, Password, Port # and Security option
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;

try
{
    // Client.Send will send this message
    client.Send(msg);
    Console.WriteLine("Message sent");
}
catch (Exception ex)
{
    Trace.WriteLine(ex.ToString());
}

ईमेल असिंक्रोनस रूप से भेजें

कभी-कभी, आप मेल को असिंक्रोनस रूप से भेजना चाह सकते हैं ताकि प्रोग्राम पृष्ठभूमि में ईमेल भेजते समय अन्य ऑपरेशन्स जारी रख सके। .NET Framework 4.5 से, आप असिंक्रोनस मेथड्स का उपयोग कर सकते हैं जो इस अनुसार लागू किए गए हैं TAP मॉडल। नीचे दिया गया C# कोड स्निपेट दिखाता है कि टास्क-आधारित असिंक्रोनस पैटर्न मेथड्स का उपयोग करके Outlook ईमेल संदेश कैसे भेजें:

  • SendAsync निर्दिष्ट संदेश भेजता है।

  • IAsyncSmtpClient - एप्लिकेशन को सरल मेल ट्रांसफर प्रोटोकॉल (SMTP) का उपयोग करके संदेश भेजने की अनुमति देता है।

  • SmtpClient.CreateAsync - Aspose.Email.Clients.Smtp.SmtpClient क्लास की नई इंस्टेंस बनाता है

  • SmtpSend - Aspose.Email.Clients.Smtp.IAsyncSmtpClient.SendAsync(Aspose.Email.Clients.Smtp.Models.SmtpSend) मेथड पैरामीटर सेट।

  • SmtpForward - Aspose.Email.Clients.Smtp.IAsyncSmtpClient.ForwardAsync(Aspose.Email.Clients.Smtp.Models.SmtpForward) तर्क।

// Authenticate the client to obtain necessary permissions
static readonly string tenantId = "YOU_TENANT_ID";
static readonly string clientId = "YOU_CLIENT_ID";
static readonly string redirectUri = "http://localhost";
static readonly string username = "username";
static readonly string[] scopes = { "https://outlook.office.com/SMTP.Send" };

// Use the SmtpAsync method for asynchronous operations
static async Task Main(string[] args)
{
    await SmtpAsync();
    Console.ReadLine();
}

static async Task SmtpAsync()
{
    // Create token provider and get access token
    var tokenProvider = new TokenProvider(clientId, tenantId, redirectUri, scopes);
    var client = SmtpClient.CreateAsync("outlook.office365.com", username, tokenProvider, 587).GetAwaiter().GetResult();

    // Create a message to send
    var eml = new MailMessage("from@domain.com", "to@domain.com", "test subj async", "test body async");
    
    // send message
    var sendOptions = SmtpSend.Create();
    sendOptions.AddMessage(eml);
    await client.SendAsync(sendOptions);
    Console.WriteLine("message was sent");

    // forward message
    var fwdOptions = SmtpForward.Create();
    fwdOptions.SetMessage(eml);
    fwdOptions.AddRecipient("rec@domain.com");
    await client.ForwardAsync(fwdOptions);
    Console.WriteLine("message was forwarded");
}

// Token provider implementation
public class TokenProvider : IAsyncTokenProvider
{
    private readonly PublicClientApplicationOptions _pcaOptions;
    private readonly string[] _scopes;

    public TokenProvider(string clientId, string tenantId, string redirectUri, string[] scopes)
    {
        _pcaOptions = new PublicClientApplicationOptions
        {
            ClientId = clientId,
            TenantId = tenantId,
            RedirectUri = redirectUri
        };

        _scopes = scopes;
    }

    public async Task<OAuthToken> GetAccessTokenAsync(bool ignoreExistingToken = false, CancellationToken cancellationToken = default)
    {

        var pca = PublicClientApplicationBuilder
            .CreateWithApplicationOptions(_pcaOptions).Build();

        try
        {
            var result = await pca.AcquireTokenInteractive(_scopes)
                .WithUseEmbeddedWebView(false)
                .ExecuteAsync(cancellationToken);

            return new OAuthToken(result.AccessToken);
        }
        catch (MsalException ex)
        {
            Console.WriteLine($"Error acquiring access token: {ex}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex}");
        }

        return null;
    }

    public void Dispose()
    {

    }
}

डिस्क से संदेश भेजें

EML फ़ाइलों में हेडर, संदेश बॉडी, और अटैचमेंट होते हैं। Aspose.Email डेवलपर्स को विभिन्न तरीकों से EML फ़ाइलों के साथ काम करने देता है। इस सेक्शन में दिखाया गया है कि डिस्क से EML फ़ाइलें कैसे लोड करें और उन्हें SMTP के साथ ईमेल के रूप में भेजें। आप .eml फ़ाइलों को डिस्क या स्ट्रीम से लोड करके … में डाल सकते हैं MailMessage क्लास और इसका उपयोग करके ईमेल संदेश भेजें SmtpClient class। यह MailMessage क्लास नई ईमेल संदेश बनाने, डिस्क या स्ट्रीम से ईमेल संदेश फ़ाइलें लोड करने और संदेशों को सहेजने के लिए मुख्य क्लास है। निम्न C# कोड स्निपेट दिखाता है कि डिस्क से संग्रहीत संदेश कैसे भेजें।

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Load an EML file in MailMessage class
var message = MailMessage.Load(dataDir + "test.eml");

// Send this message using SmtpClient
var client = new SmtpClient("host", "username", "password");
            
try
{
    client.Send(message);
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}            

सादा टेक्स्ट में ईमेल भेजें

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

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

निम्नलिखित कोड स्निपेट आपको साधारण टेक्स्ट ईमेल भेजने का तरीका दिखाता है।

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
//Create an instance of the MailMessage class
var message = new MailMessage();

// Set From field, To field and Plain text body
message.From = "sender@sender.com";
message.To.Add("receiver@receiver.com");
message.Body = "This is Plain Text Body";

// Create an instance of the SmtpClient class
var client = new SmtpClient();

// And Specify your mailing host server, Username, Password and Port
client.Host = "smtp.server.com";
client.Username = "Username";
client.Password = "Password";
client.Port = 25;

try
{
    //Client.Send will send this message
    client.Send(message);
    Console.WriteLine("Message sent");
}
catch (Exception ex)
{
    System.Diagnostics.Trace.WriteLine(ex.ToString());
}

HTML बॉडी के साथ ईमेल भेजें

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

  • का एक इंस्टेंस बनाएं MailMessage क्लास।
  • प्रेषक और प्राप्तकर्ता के ईमेल पते को निर्दिष्ट करें MailMessage इंस्टैंस।
  • निर्दिष्ट करें HtmlBody सामग्री।
  • का एक इंस्टेंस बनाएं SmtpClient क्लास और इसका उपयोग करके ईमेल भेजें भेजें विधि।

इस लेख के उद्देश्य के लिए, ईमेल की HTML सामग्री बुनियादी है: This is the HTML body अधिकांश HTML ईमेल अधिक जटिल होंगे। निम्न कोड स्निपेट दिखाता है कि कैसे HTML बॉडी के साथ ईमेल भेजें।

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
public static void Run()
{
    // Declare msg as MailMessage instance
    var msg = new MailMessage();

    // Use MailMessage properties like specify sender, recipient, message and HtmlBody
    msg.From = "newcustomeronnet@gmail.com";
    msg.To = "asposetest123@gmail.com";
    msg.Subject = "Test subject";
    msg.HtmlBody = "<html><body>This is the HTML body</body></html>";

    var client = GetSmtpClient();

    try
    {
        // Client will send this message
        client.Send(msg);
        Console.WriteLine("Message sent");
    }
    catch (Exception ex)
    {
        Trace.WriteLine(ex.ToString());
    }

    Console.WriteLine(Environment.NewLine + "Email sent with HTML body.");
}

private static SmtpClient GetSmtpClient()
{
    var client = new SmtpClient("smtp.gmail.com", 587, "your.email@gmail.com", "your.password");
    client.SecurityOptions = SecurityOptions.Auto;
    return client;
}

वैकल्पिक टेक्स्ट के साथ HTML ईमेल भेजें

उपयोग करें AlternateView क्लास का उपयोग करके ईमेल संदेश की विभिन्न फ़ॉर्मेट में प्रतियां निर्दिष्ट करें। उदाहरण के लिए, यदि आप संदेश HTML में भेजते हैं, तो आप उन प्राप्तकर्ताओं के लिए प्लेन टेक्स्ट संस्करण भी प्रदान करना चाह सकते हैं जो HTML कंटेंट नहीं दिखा सकते। या, यदि आप न्यूज़लेटर भेज रहे हैं, तो उन प्राप्तकर्ताओं के लिए प्लेन टेक्स्ट संस्करण देना उपयोगी हो सकता है जिन्होंने इसे चुना है। वैकल्पिक टेक्स्ट के साथ ईमेल भेजने के लिए इन चरणों का पालन करें:

  1. का एक इंस्टेंस बनाएं MailMessage क्लास।
  2. प्रेषक और प्राप्तकर्ता के ईमेल पते निर्दिष्ट करें MailMessage इंस्टैंस।
  3. का एक इंस्टेंस बनाएं AlternateView क्लास।

यह स्ट्रिंग में निर्दिष्ट कंटेंट का उपयोग करके ईमेल संदेश का वैकल्पिक व्यू बनाता है।

  1. इंस्टेंस जोड़ें AlternateView क्लास को MailMessage ऑब्जेक्ट।
  2. का एक इंस्टेंस बनाएं SmtpClient क्लास और इसका उपयोग करके ईमेल भेजें भेजें विधि।

निम्नलिखित कोड स्निपेट आपको वैकल्पिक टेक्स्ट के साथ ईमेल भेजने का तरीका दिखाता है।

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Declare message as MailMessage instance
var message = 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
message.AlternateViews.Add(alternate);

समूह ईमेल भेजें

हम ईमेल का बैच उपयोग करके भेज सकते हैं SmtpClient क्लास का भेजें मेथड ओवरलोड जो एक को स्वीकार करता है MailMessageCollection:

  1. का एक इंस्टेंस बनाएं SmtpClient क्लास।
  2. निर्दिष्ट करें SmtpClient क्लास प्रॉपर्टीज़।
  3. का एक इंस्टेंस बनाएं MailMessage क्लास।
  4. प्रेषक, प्राप्तकर्ता, मेल विषय और संदेश को इंस्टेंस में निर्दिष्ट करें MailMessage क्लास।
  5. यदि आप किसी अन्य व्यक्ति को ईमेल भेजना चाहते हैं, तो उपरोक्त दो चरणों को दोहराएँ।
  6. का एक इंस्टेंस बनाएं MailMessageCollection क्लास।
  7. एक इंस्टेंस जोड़ें MailMessage क्लास को ऑब्जेक्ट में MailMessageCollection क्लास।
  8. अब अपने ईमेल को उपयोग करके भेजें SmtpClient क्लास भेजें मेथड जिसमें आप इंस्टेंस पास करते हैं MailMessageCollection उसमें क्लास।

निम्नलिखित कोड स्निपेट आपको बल्क ईमेल भेजने का तरीका दिखाता है।

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create SmtpClient as client and specify server, port, user name and password
var client = new SmtpClient("mail.server.com", 25, "Username", "Password");

// Create instances of MailMessage class and Specify To, From, Subject and Message
var message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
var message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
var message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

// Create an instance of MailMessageCollection class
var manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);

try
{
    // Send Messages using Send method
    client.Send(manyMsg);                
    Console.WriteLine("Message sent");
}
catch (Exception ex)
{
    Trace.WriteLine(ex.ToString());
}

समूह ईमेल सफलता को ट्रैक करें

जब आप समूह में संदेश भेजते हैं, तो आप सफलतापूर्वक भेजे गए संदेशों की संख्या के बारे में जानकारी प्राप्त कर सकते हैं और यहां तक कि इन संदेशों की सूची भी प्राप्त कर सकते हैं। यह SucceededSending ईवेंट इस उद्देश्य के लिए है।

कोड नमूना:

using (var client = new SmtpClient(host, SecurityOptions.Auto))
{
    int messageCount = 0;

    client.SucceededSending += (sender, eventArgs) =>
    {
        Console.WriteLine("The message '{0}' was successfully sent.", eventArgs.Message.Subject);
        messageCount++;
    };

    client.Send(messages);

    Console.WriteLine("{0} messages were successfully sent.", messageCount);
}

मल्टीकनेक्शन के साथ ईमेल भेजें

यह UseMultiConnection प्रॉपर्टी का उपयोग भारी ऑपरेशन्स के लिए कई कनेक्शन बनाने हेतु किया जा सकता है। आप मल्टीकनेक्शन मोड में उपयोग किए जाने वाले कनेक्शन की संख्या को भी सेट कर सकते हैं, उपयोग करके SmtpClient.ConnectionsQuantity. निम्नलिखित कोड स्निपेट मल्टीकनेक्शन मोड का उपयोग करके कई संदेश भेजने को दर्शाता है।

var smtpClient = new SmtpClient();
smtpClient.Host = "<HOST>";
smtpClient.Username = "<USERNAME>";
smtpClient.Password = "<PASSWORD>";
smtpClient.Port = 587;
smtpClient.SupportedEncryption = EncryptionProtocols.Tls;
smtpClient.SecurityOptions = SecurityOptions.SSLExplicit;

var messages = new List<MailMessage>();
for (int i = 0; i < 20; i++)
{
    MailMessage message = new MailMessage(
        "<EMAIL ADDRESS>",
        "<EMAIL ADDRESS>",
        "Test Message - " + Guid.NewGuid().ToString(),
        "SMTP Send Messages with MultiConnection");
    messages.Add(message);
}

smtpClient.ConnectionsQuantity = 5;
smtpClient.UseMultiConnection = MultiConnectionMode.Enable;
smtpClient.Send(messages);

संदेशों को TNEF के रूप में भेजें

TNEF ईमेल में विशेष फ़ॉर्मेटिंग होती है जो मानक API का उपयोग करके भेजने पर खो सकती है। यह SmtpClient क्लास UseTnef प्रॉपर्टी को सेट किया जा सकता है ताकि ईमेल को TNEF के रूप में भेजा जा सके। निम्नलिखित कोड स्निपेट दिखाता है कि संदेश को TNEF के रूप में कैसे भेजें।

var emlFileName = RunExamples.GetDataDir_Email() + "Message.eml";     // A TNEF Email

// Load from eml
var eml1 = MailMessage.Load(emlFileName, new EmlLoadOptions());
eml1.From = "somename@gmail.com";
eml1.To.Clear();
eml1.To.Add(new MailAddress("first.last@test.com"));
eml1.Subject = "With PreserveTnef flag during loading";
eml1.Date = DateTime.Now;

var client = new SmtpClient("smtp.gmail.com", 587, "somename", "password");
client.SecurityOptions = SecurityOptions.Auto;
client.UseTnef = true;     // Use this flag to send as TNEF
client.Send(eml1);

मीटिंग अनुरोध भेजें

Aspose.Email डेवलपर्स को आपके ईमेल में कैलेंडर फ़ंक्शन जोड़ने की सुविधा देता है।

ईमेल के माध्यम से अनुरोध भेजें

ईमेल के माध्यम से मीटिंग अनुरोध भेजने के लिए, निम्न चरणों का पालन करें:

  • का एक इंस्टेंस बनाएं MailMessage क्लास।
  • भेजने वाले और प्राप्तकर्ता पते को एक इंस्टेंस का उपयोग करके निर्दिष्ट करें MailMessage क्लास।
  • के एक इंस्टेंस को प्रारम्भ करें Appointment क्लास और उसके मान पास करें।
  • सारांश और विवरण निर्दिष्ट करें Calendar इंस्टैंस।
  • जोड़ें Calendar को MailMessage इंस्टेंस और इसे पास करें Appointment इंस्टैंस।

|ईमेल द्वारा भेजा गया iCalendar मीटिंग अनुरोध| | :- | |todo:image_alt_text| निम्नलिखित कोड स्निपेट दिखाता है कि ईमेल के माध्यम से अनुरोध कैसे भेजें।


// Create an instance of the MailMessage class
var msg = new MailMessage();

// Set the sender, recipient, who will receive the meeting request. Basically, the recipient is the same as the meeting attendees
msg.From = "newcustomeronnet@gmail.com";
msg.To = "person1@domain.com, person2@domain.com, person3@domain.com, asposetest123@gmail.com";

// Create Appointment instance
var app = new Appointment("Room 112", new DateTime(2015, 7, 17, 13, 0, 0), new DateTime(2015, 7, 17, 14, 0, 0), msg.From, msg.To);
app.Summary = "Release Meetting";
app.Description = "Discuss for the next release";

// Add appointment to the message and Create an instance of SmtpClient class
msg.AddAlternateView(app.RequestApointment());
var client = GetSmtpClient();

try
{
    // Client.Send will send this message
    client.Send(msg);
    Console.WriteLine("Message sent");
}
catch (Exception ex)
{
    Trace.WriteLine(ex.ToString());
}

संदेश फ़ॉरवर्ड करें

SMTP क्लाइंट के साथ संदेश फ़ॉरवर्ड करें

ईमेल फ़ॉरवर्ड करना सामान्य प्रथा है। प्राप्त ईमेल को विशिष्ट प्राप्तकर्ताओं को फ़ॉरवर्ड किया जा सकता है। यह फ़ॉरवर्ड विधि का उपयोग प्राप्त या सहेजे गए ईमेल को इच्छित प्राप्तकर्ताओं को फ़ॉरवर्ड करने के लिए किया जा सकता है। नीचे दिया गया कोड स्निपेट दिखाता है कि कैसे SMTP क्लाइंट का उपयोग करके ईमेल फ़ॉरवर्ड किया जाए।

//Create an instance of SmtpClient class
var client = new SmtpClient();

// Specify your mailing host server, Username, Password, Port and SecurityOptions
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
var message = MailMessage.Load(dataDir + "Message.eml");
client.Forward("Recipient1@domain.com", "Recipient2@domain.com", message);

बिना MailMessage के संदेश फ़ॉरवर्ड करें

API भी EML संदेशों को पहले लोड किए बिना फ़ॉरवर्ड करने का समर्थन करता है। MailMessage. यह उन मामलों में उपयोगी है जहाँ सिस्टम मेमोरी संसाधन सीमित होते हैं।


using (var client = new SmtpClient(host, smtpPort, username, password, SecurityOptions.Auto))
{
    using (var fs = File.OpenRead(@"test.eml"))
    {
        client.Forward(sender, recipients, fs);
    }
}

बिना MailMessage के संदेशों को असिंक्रोनस रूप से फ़ॉरवर्ड करें

using (var client = new SmtpClient(host, smtpPort, username, password))
{
    using (var fs = File.OpenRead(@"test.eml"))
    {
        await client.ForwardAsync(sender, recipients, fs);
    }
}

मेल मर्ज

ईमेल कैसे मर्ज करें

मेल मर्ज आपको समान ईमेल संदेशों का एक बैच बनाने और भेजने में मदद करता है। ईमेल की मूल सामग्री समान होती है, लेकिन सामग्री को वैयक्तिकृत किया जा सकता है। सामान्यतः, प्राप्तकर्ता की संपर्क जानकारी (पहला नाम, दूसरा नाम, कंपनी आदि) का उपयोग ईमेल को वैयक्तिकृत करने के लिए किया जाता है।

|मेल मर्ज कैसे काम करता है इसका चित्रण:| | :- | |todo:image_alt_text| Aspose.Email डेवलपर्स को विभिन्न डेटा स्रोतों से डेटा शामिल करने वाले मेल मर्ज सेट अप करने की सुविधा देता है।

Aspose.Email के साथ मेल मर्ज करने के लिए, निम्नलिखित चरणों का पालन करें:

  1. नाम सिग्नेचर के साथ एक फ़ंक्शन बनाएं
  2. का एक इंस्टेंस बनाएं MailMessage क्लास।
  3. भेजने वाला, प्राप्तकर्ता, विषय, और बॉडी निर्दिष्ट करें।
  4. ईमेल के अंत में सिग्नेचर बनाएँ।
  5. का एक इंस्टेंस बनाएं TemplateEngine क्लास में और इसे पास करें MailMessage इंस्टैंस।
  6. सिग्नेचर लें TemplateEngine इंस्टैंस।
  7. DataTable क्लास की एक इंस्टेंस बनाएं।
  8. DataTable क्लास में डेटा स्रोत के रूप में Receipt, FirstName और LastName कॉलम जोड़ें।
  9. DataRow क्लास की एक इंस्टेंस बनाएं।
  10. DataRow ऑब्जेक्ट में प्राप्तकर्ता का पता, पहला और अंतिम नाम निर्दिष्ट करें।
  11. का एक इंस्टेंस बनाएं MailMessageCollection क्लास
  12. निर्दिष्ट करें TemplateEngine  और DataTable इंस्टैंस इस में MailMessageCollection इंस्टैंस।
  13. का एक इंस्टेंस बनाएं SmtpClient क्लास और सर्वर, पोर्ट, उपयोगकर्ता नाम, तथा पासवर्ड निर्दिष्ट करें।
  14. का उपयोग करके ईमेल भेजें SmtpClient क्लास भेजें विधि।

निम्न नमूना में, #FirstName# एक DataTable कॉलम को दर्शाता है, जिसका मान उपयोगकर्ता द्वारा सेट किया जाता है। निम्न कोड स्निपेट दिखाता है कि कैसे मेल मर्ज किया जाए।

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
public static void Run()
{
    // The path to the File directory.
    string dataDir = RunExamples.GetDataDir_SMTP();
    string dstEmail = dataDir + "EmbeddedImage.msg";

    // Create a new MailMessage instance
    MailMessage msg = new MailMessage();

    // Add subject and from address
    msg.Subject = "Hello, #FirstName#";
    msg.From = "sender@sender.com";

    // Add email address to send email also Add mesage field to HTML body
    msg.To.Add("your.email@gmail.com");
    msg.HtmlBody = "Your message here";
    msg.HtmlBody += "Thank you for your interest in <STRONG>Aspose.Email</STRONG>.";

    // Use GetSignment as the template routine, which will provide the same signature
    msg.HtmlBody += "<br><br>Have fun with it.<br><br>#GetSignature()#";

    // Create a new TemplateEngine with the MSG message,  Register GetSignature routine. It will be used in MSG.
    TemplateEngine engine = new TemplateEngine(msg);
    engine.RegisterRoutine("GetSignature", GetSignature);

    // Create an instance of DataTable and Fill a DataTable as data source
    DataTable dt = new DataTable();
    dt.Columns.Add("Receipt", typeof(string));
    dt.Columns.Add("FirstName", typeof(string));
    dt.Columns.Add("LastName", typeof(string));

    DataRow dr = dt.NewRow();
    dr["Receipt"] = "abc<asposetest123@gmail.com>";
    dr["FirstName"] = "a";
    dr["LastName"] = "bc";
    dt.Rows.Add(dr);
    dr = dt.NewRow();
    dr["Receipt"] = "John<email.2@gmail.com>";
    dr["FirstName"] = "John";
    dr["LastName"] = "Doe";
    dt.Rows.Add(dr);
    dr = dt.NewRow();
    dr["Receipt"] = "Third Recipient<email.3@gmail.com>";
    dr["FirstName"] = "Third";
    dr["LastName"] = "Recipient";
    dt.Rows.Add(dr);

    MailMessageCollection messages;
    try
    {
        // Create messages from the message and datasource.
        messages = engine.Instantiate(dt);

        // Create an instance of SmtpClient and specify server, port, username and password
        SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "your.email@gmail.com", "your.password");
        client.SecurityOptions = SecurityOptions.Auto;

        // Send messages in bulk
        client.Send(messages);
    }
    catch (MailException ex)
    {
        Debug.WriteLine(ex.ToString());
    }

    catch (SmtpException ex)
    {
        Debug.WriteLine(ex.ToString());
    }

    Console.WriteLine(Environment.NewLine + "Message sent after performing mail merge.");
}

// Template routine to provide signature
static object GetSignature(object[] args)
{
    return "Aspose.Email Team<br>Aspose Ltd.<br>" + DateTime.Now.ToShortDateString();
}

पंक्ति-वार मेल मर्ज कैसे करें

उपयोगकर्ता व्यक्तिगत डेटा पंक्ति को मर्ज कर सकता है और एक पूर्ण और तैयार MailMessage ऑब्जेक्ट। यह TemplateEngine.Merge विधि का उपयोग पंक्ति-वार मेल मर्ज करने के लिए किया जा सकता है।

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET
// Create message from the data in current row.
message = engine.Merge(currentRow);