ارسال و ارجاع پیام‌ها - ارسال پیام‌های ایمیل Outlook با استفاده از برنامه Java

این SmtpClient کلاس به برنامه‌ها اجازه می‌دهد تا ایمیل را با استفاده از پروتکل ساده انتقال ایمیل (SMTP) ارسال کنند.

  • این SmtpClient کلاس تنها ورودی اصلی است که توسعه‌دهندگان برای ارسال پیام‌های ایمیل استفاده می‌کنند.
  • این SmtpClient کلاس همچنین روش‌های متداول دیگری برای تحویل ایمیل فراهم می‌کند، از جمله نوشتن پیام‌های ایمیل در سیستم فایل، صف پیام و غیره.
  • این SmtpClient کلاس به‌طور کامل از این دو مدل برنامه‌نویسی پشتیبانی می‌کند:
  • این SmtpClient کلاس همچنین پشتیبانی می‌کند ارسال پیام‌ها به‌صورت TNEF

برای ارسال پیام ایمیل و مسدود کردن تا زمان انتقال ایمیل به سرور SMTP، از یکی از متدهای Send همزمان استفاده کنید. برای این که نخ اصلی برنامه به اجرای خود ادامه دهد در حالی که ایمیل در حال انتقال است، از beginSend متد.

ارسال ایمیل‌ها به‌صورت همزمان

یک پیام ایمیل می‌تواند به‌صورت همزمان با استفاده از SmtpClient کلاس send متد. پیام ایمیل مشخص‌شده را از طریق سرور SMTP برای تحویل می‌فرستد. ارسال‌کننده پیام، دریافت‌کنندگان، موضوع و بدنه پیام با استفاده از شیءهای String مشخص می‌شوند. برای ارسال پیام ایمیل به‌صورت همزمان، مراحل زیر را دنبال کنید:

  1. یک نمونه از MailMessage کلاس و ویژگی‌های آن را تنظیم کنید.
  2. یک نمونه از SmtpClient کلاس و میزبان، پورت، نام کاربری و رمز عبور را مشخص کنید.
  3. ارسال پیام با استفاده از SmtpClient کلاس send متد و پاس دهید MailMessage نمونه.

قطعه کد زیر در جاوا نشان می‌دهد چگونه ایمیل‌های Outlook را به‌صورت همزمان ارسال کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// 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.setHost("mail.server.com");
client.setUsername("username");
client.setPassword("password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);

try {
    // Client.Send will send this message
    client.send(msg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
}

ارسال ایمیل‌ها به‌صورت ناهمزمان

گاهی ممکن است بخواهید ایمیل را به‌صورت ناهمزمان بفرستید. به‌عنوان مثال، اگر ایمیل‌های زیادی از طریق برنامه‌تان ارسال می‌کنید، روش همزمان ممکن است کار نکند. در چنین شرایطی می‌توانید از beginSend. این beginSend متد از SmtpClient کلاس یک پیام ایمیل را برای تحویل به سرور SMTP می‌فرستد. این متد نخ (thread) فراخوانی‌کننده را مسدود نمی‌کند و به فراخوان اجازه می‌دهد شیء‌ای را به متد پاس دهد که پس از تکمیل عملیات فراخوانی می‌شود. برای ارسال پیام ایمیل Outlook به‌صورت ناهمزمان در جاوا، مراحل زیر را دنبال کنید:

  1. یک نمونه از MailMessage کلاس و از ویژگی‌های مختلف آن استفاده کنید.
  2. یک نمونه از SmtpClient کلاس و میزبان، پورت، نام کاربری و رمز عبور را مشخص کنید.
  3. یک نمونه تعریف‌شده توسط کاربر ایجاد کنید که به متد پاس داده شده و پس از اتمام عملیات ناهمزمان فراخوانی می‌شود.
  4. ارسال پیام با استفاده از beginSend متد SmtpClient کلاس و پاس دهید MailMessage نمونه‌ای از شیء و نمونه‌ای تعریف‌شده توسط کاربر همراه با تابع بازخوانی که پس از تکمیل عملیات فراخوانی می‌شود.

برای دریافت اعلان زمانی که ایمیل ارسال شده یا عملیات لغو شده است، تابع بازخوانی (callback) که به beginSend متد فراخوانی می‌شود. پس از فراخوانی SmtpClient کلاس beginSend در متد نیازی به انتظار تا اینکه پیام ایمیل به‌طور کامل ارسال شود نیست. می‌توانیم متد دیگری را فراخوانی کنیم beginSend به‌همین‌زمان. وقتی ایمیلی با استفاده از beginSend متد، قطعه کد یک پیام ("Message Sent") چاپ می‌کند. برنامه یا قطعه کد Java زیر نشان می‌دهد چگونه ایمیل‌ها را به‌صورت ناهمزمان ارسال کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

public static void run() {
    sendMail();
}

static SmtpClient getSmtpClient() {
    SmtpClient client = new SmtpClient();
    client.setHost("mail.server.com");
    // Specify your mail Username, Password, Port # and security option
    client.setUsername("username");
    client.setPassword("password");
    client.setPort(587);
    client.setSecurityOptions(SecurityOptions.SSLExplicit);
    return client;
}

static void sendMail() {
    try {

        // Declare msg as MailMessage instance
        MailMessage msg = new MailMessage("sender@gmail.com", "receiver@gmail.com", "Test subject", "Test body");
        SmtpClient client = getSmtpClient();
        Object state = new Object();
        IAsyncResult ar = client.beginSend(msg, callback, state);
        // If the user canceled the send, and mail hasn't been sent yet,
        client.cancelAsyncOperation(ar);

        msg.dispose();
        System.out.println("Goodbye.");
    } catch (Exception ex) {
        System.err.println(ex);
    }
}

static AsyncCallback callback = new AsyncCallback() {
    public void invoke(IAsyncResult ar) {
        IAsyncResultExt task = null;
        if (ar instanceof IAsyncResult)
            task = (IAsyncResultExt) ar;

        if (task != null && task.isCanceled()) {
            System.out.println("Send canceled.");
        }

        if (task != null && task.getErrorInfo() != null) {
            System.out.println(task.getErrorInfo());
        } else {
            System.out.println("Message Sent.");
        }
    }
};

ارسال پیام‌های ذخیره‌شده از دیسک

فایل‌های EML (فایل‌های ایمیل الکترونیکی Outlook Express) شامل سرایند ایمیل، بدنه پیام و هر پیوستی هستند. Aspose.Email به توسعه‌دهندگان امکان کار با فایل‌های EML به صورت‌های مختلف را می‌دهد. این مقاله نشان می‌دهد چگونه فایل‌های EML را از دیسک بارگذاری کرده و به‌عنوان ایمیل با SMTP ارسال کنید. می‌توانید فایل‌های .eml را از دیسک یا جریان به MailMessage کلاس و پیام ایمیل را با استفاده از SmtpClient کلاس. MailMessage کلاس اصلی برای ایجاد پیام‌های ایمیل جدید، بارگذاری فایل‌های پیام ایمیل از دیسک یا جریان و ذخیره پیام‌ها است. قطعه کد Java زیر نشان می‌دهد چگونه پیام‌های ذخیره‌شده را از دیسک ارسال کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Load an EML file in MailMessage class
MailMessage message = MailMessage.load(dataDir + "test.eml");

// Send this message using SmtpClient
SmtpClient client = new SmtpClient("host", "username", "password");

try {
    client.send(message);
} catch (Exception ex) {
    System.out.println(ex.getMessage());
}

ارسال ایمیل متن ساده

نمونه‌های برنامه‌نویسی زیر نشان می‌دهند چگونه یک پیام ایمیل متن ساده ارسال کنید. این بدنه ویژگی، یک ویژگی از MailMessage کلاس، برای مشخص کردن محتوای متن ساده بدنه پیام استفاده می‌شود. برای ارسال یک پیام ایمیل متن ساده، این مراحل را دنبال کنید:

  • یک نمونه از MailMessage کلاس.
  • آدرس ایمیل فرستنده و گیرنده را در MailMessage نمونه.
  • مشخص کنید بدنه محتوا، برای پیام متن ساده استفاده می‌شود.
  • یک نمونه از SmtpClient کلاس و ایمیل را ارسال کنید.

قطعه کد زیر نشان می‌دهد چگونه یک ایمیل متن ساده ارسال کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

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

// Set From field, To field and Plain text body
message.setFrom(MailAddress.to_MailAddress("sender@sender.com"));
message.getTo().add("receiver@receiver.com");
message.setBody("This is Plain Text Body");

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

// And Specify your mailing host server, Username, Password and Port
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try {
    // Client.Send will send this message
    client.send(message);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
}

ارسال ایمیل با بدنه HTML

نمونه‌های برنامه‌نویسی زیر نشان می‌دهند چگونه می‌توانید یک پیام ایمیل ساده HTML ارسال کنید. این HtmlBody، یک ویژگی از MailMessage کلاس، برای مشخص کردن محتوای HTML بدنه پیام استفاده می‌شود. برای ارسال یک ایمیل ساده HTML، این مراحل را دنبال کنید:

  • یک نمونه از MailMessage کلاس.
  • آدرس ایمیل فرستنده و گیرنده را در MailMessage نمونه.
  • مشخص کنید HtmlBody محتوا.
  • یک نمونه از SmtpClient کلاس و ایمیل را با استفاده از send متد.

برای اهداف این مقاله، محتوای HTML ایمیل ابتدایی است: This is the HTML body بیشتر ایمیل‌های HTML پیچیده‌تر خواهند بود. قطعه کد برنامه Java زیر نشان می‌دهد چگونه ایمیلی با بدنه HTML ارسال کنید.

public static void run() {
    // Declare msg as MailMessage instance
    MailMessage msg = new MailMessage();

    // Use MailMessage properties like specify sender, recipient, message and HtmlBody
    msg.setFrom(MailAddress.to_MailAddress("newcustomeronnet@gmail.com"));
    msg.setTo(MailAddressCollection.to_MailAddressCollection("asposetest123@gmail.com"));
    msg.setSubject("Test subject");
    msg.setHtmlBody("<html><body>This is the HTML body</body></html>");
    SmtpClient client = getSmtpClient();
    try {
        // Client will send this message
        client.send(msg);
        System.out.println("Message sent");
    } catch (Exception ex) {
        System.err.println(ex);
    }

    System.out.println("Email sent with HTML body.");
}

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

ارسال ایمیل با متن پیام جایگزین

نمونه‌های برنامه‌نویسی زیر نشان می‌دهند چگونه یک پیام ایمیل ساده HTML با محتوای جایگزین ارسال کنید. از AlternateView کلاس برای مشخص کردن نسخه‌های یک پیام ایمیل در قالب‌های مختلف. برای مثال، اگر پیام را به صورت HTML ارسال کنید، ممکن است بخواهید نسخه متن ساده نیز برای دریافت‌کنندگانی که ایمیل‌خوان‌هایی دارند که نمی‌توانند محتوای HTML را نمایش دهند، ارائه کنید. یا اگر خبرنامه‌ای می‌فرستید، ممکن است بخواهید یک نسخه متن ساده از متن برای دریافت‌کنندگانی که نسخه متن ساده را انتخاب کرده‌اند، فراهم کنید. برای ارسال ایمیل با متن جایگزین، این مراحل را دنبال کنید:

  1. یک نمونه از MailMessage کلاس.
  2. آدرس ایمیل فرستنده و گیرنده را در MailMessage نمونه.
  3. یک نمونه از AlternateView کلاس.

این یک نمای جایگزین برای پیام ایمیل ایجاد می‌کند با استفاده از محتوای مشخص شده در رشته.

  1. نمونه‌ای از AlternateView کلاس به MailMessage شیء.
  2. یک نمونه از SmtpClient کلاس و ایمیل را با استفاده از send متد.

قطعه کد زیر نشان می‌دهد چگونه ایمیلی با متن جایگزین ارسال کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Declare message as MailMessage instance
MailMessage message = new MailMessage();

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

// Adding alternate text
message.getAlternateViews().addItem(alternate);

ارسال ایمیل‌های انبوه

ارسال ایمیل به صورت انبوه به معنای ارسال دسته‌ای از ایمیل‌ها در یک پیام است. می‌توانیم یک دسته ایمیل را با استفاده از SmtpClient کلاس send بارگذاری بیش از حد متد که یک MailMessageCollection کلاس:

  1. یک نمونه از SmtpClient کلاس.
  2. مشخص کنید SmtpClient ویژگی‌های کلاس را مشخص کنید.
  3. یک نمونه از MailMessage کلاس.
  4. فرستنده، گیرنده، موضوع ایمیل و پیام را در نمونه MailMessage کلاس.
  5. دو مرحله بالا را دوباره تکرار کنید، اگر می‌خواهید ایمیل را به شخص دیگری ارسال کنید.
  6. یک نمونه از MailMessageCollection کلاس.
  7. یک نمونه از MailMessage کلاس در شیء MailMessageCollection کلاس.
  8. اکنون ایمیل خود را با استفاده از SmtpClient کلاس send متد با عبور نمونه از MailMessageCollection کلاس در آن.

قطعه کد زیر نشان می‌دهد چگونه ایمیل‌های انبوه ارسال کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

// Create SmtpClient as client and specify server, port, user name and password
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");

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

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

// Use client.BulkSend function to complete the bulk send task
try {
    // Send Message using BulkSend method
    client.send(manyMsg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
}

دریافت اطلاعات درباره پیام‌های ارسالی به صورت انبوه

وقتی پیام‌ها را به صورت انبوه ارسال می‌کنید، می‌توانید اطلاعاتی درباره تعداد پیام‌های ارسال‌شده موفق و لیست این پیام‌ها دریافت کنید. این SucceededSending رویداد برای این منظور استفاده می‌شود.

نمونه کد زیر نشان می‌دهد چگونه اطلاعاتی درباره تعداد پیام‌های ارسال‌شده موفق دریافت کنیم:

try (SmtpClient client = new SmtpClient(host, SecurityOptions.Auto)) {
    final AtomicInteger messageCount = new AtomicInteger(0);

    client.setSucceededSending(new EventHandler<MailMessageEventArgs>() {
        public void invoke(Object sender, MailMessageEventArgs eventArgs) {
            System.out.println("The message " + eventArgs.getMessage().getSubject() + " was successfully sent.");
            messageCount.incrementAndGet();
        }
    });

    client.send(messages);

    System.out.println(messageCount + " messages were successfully sent.");
}

ارسال ایمیل‌ها با MultiConnection

SmtpClient ارائه می‌دهد یک UseMultiConnection ویژگی که می‌تواند برای ایجاد چندین اتصال برای عملیات سنگین استفاده شود. همچنین می‌توانید با استفاده از SmtpClient.ConnectionsQuantity. قطعه کد زیر استفاده از حالت چنداتصال را برای ارسال چندین پیام نشان می‌دهد.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

SmtpClient smtpClient = new SmtpClient();
smtpClient.setHost("<HOST>");
smtpClient.setUsername("<USERNAME>");
smtpClient.setPassword("<PASSWORD>");
smtpClient.setPort(587);
smtpClient.setSupportedEncryption(EncryptionProtocols.Tls);
smtpClient.setSecurityOptions(SecurityOptions.SSLExplicit);

List<MailMessage> messages = new ArrayList<MailMessage>();
for (int i = 0; i < 20; i++) {
    MailMessage message = new MailMessage("<EMAIL ADDRESS>", "<EMAIL ADDRESS>", "Test Message - " + UUID.randomUUID().toString(),
            "SMTP Send Messages with MultiConnection");
    messages.add(message);
}

smtpClient.setConnectionsQuantity(5);
smtpClient.setUseMultiConnection(MultiConnectionMode.Enable);
smtpClient.send(messages);

ارسال پیام به‌صورت TNEF

ایمیل‌های TNEF قالب‌بندی خاصی دارند که ممکن است در صورت ارسال با API استاندارد از بین برود. Aspose.Email قابلیت ارسال ایمیل‌ها به‌صورت TNEF را فراهم می‌کند، به این ترتیب قالب حفظ می‌شود. SmtpClient کلاس UseTnef می‌توان ویژگی را تنظیم کرد تا ایمیل به‌صورت TNEF ارسال شود. قطعه کد زیر نشان می‌دهد چگونه پیامی را به‌صورت TNEF ارسال کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

String emlFileName = dataDir + "Message.eml"; // A TNEF Email

// Load from eml
MailMessage eml1 = MailMessage.load(emlFileName, new EmlLoadOptions());
eml1.setFrom(MailAddress.to_MailAddress("somename@gmail.com"));
eml1.getTo().clear();
eml1.getTo().addItem(new MailAddress("first.last@test.com"));
eml1.setSubject("With PreserveTnef flag during loading");
eml1.setDate(new Date());
SmtpClient client = new SmtpClient("smtp.gmail.com", 587, "somename", "password");
client.setSecurityOptions(SecurityOptions.Auto);
client.setUseTnef(true); // Use this flag to send as TNEF
client.send(eml1);

ارسال درخواست‌های جلسه

Microsoft Outlook هم توابع تقویم و هم مدیریت ایمیل را ارائه می‌دهد. وقتی کاربری ایمیلی با دعوت به یک رویداد باز می‌کند، Outlook از او می‌خواهد که دعوت را بپذیرد یا رد کند. Aspose.Email به توسعه‌دهندگان این امکان را می‌دهد که توابع تقویم را به ایمیل‌های خود اضافه کنند.

ارسال درخواست‌ها از طریق ایمیل

برای ارسال درخواست‌های جلسه از طریق ایمیل، این مراحل را دنبال کنید:

  • یک نمونه از MailMessage کلاس.
  • آدرس‌های فرستنده و گیرنده را با استفاده از یک نمونه از MailMessage کلاس.
  • یک نمونه از را مقداردهی اولیه کنید Appointment کلاس و مقادیر آن را پاس دهید.
  • خلاصه و توصیف را در Calendar نمونه.
  • افزودن Calendar) به MailMessage نمونه و پاس دهید آن را Appointment نمونه.

|درخواست جلسه iCalendar ارسال شده توسط ایمیل| | :- | |todo:image_alt_text| قطعه کد زیر نشان می‌دهد چگونه درخواست‌ها را از طریق ایمیل ارسال کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

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

// Set the sender, recipient, who will receive the meeting request. Basically, the recipient is the same as the meeting attendees
msg.setFrom(MailAddress.to_MailAddress("newcustomeronnet@gmail.com"));
msg.setTo(MailAddressCollection.to_MailAddressCollection("person1@domain.com, person2@domain.com, person3@domain.com, asposetest123@gmail.com"));

// Create Appointment instance
Calendar cal = Calendar.getInstance();
cal.set(2015, Calendar.JULY, 17, 13, 0, 0);
Date startDate = cal.getTime();
cal.set(2015, Calendar.JULY, 17, 14, 0, 0);
Date endDate = cal.getTime();
Appointment app = new Appointment("Room 112", startDate, endDate, msg.getFrom(), msg.getTo());
app.setSummary("Release Meetting");
app.setDescription("Discuss for the next release");

// Add appointment to the message and Create an instance of SmtpClient class
msg.addAlternateView(app.requestApointment());
SmtpClient client = getSmtpClient();

try {
    // Client.Send will send this message
    client.send(msg);
    System.out.println("Message sent");
} catch (Exception ex) {
    System.err.println(ex);
}

پشتیبانی iCalendar برای IBM Lotus Notes

قابلیت تقویم Aspose.Email مبتنی بر استاندارد iCalendar است، یک استاندارد برای تبادل داده‌های تقویم (RFC 2445 یا مرجع سینتکس RFC2445). بنابراین، نه تنها Microsoft Outlook بلکه IBM Lotus Notes را نیز پشتیبانی می‌کند. برای ارسال درخواست جلسه در Lotus Notes، همان مراحلی که در بالا ذکر شد را دنبال کنید.

ارسال ایمیل با استفاده از مشتری SMTP

ارسال ایمیل با استفاده از مشتری SMTP

ارسال مجدد ایمیل یک عمل رایج در ارتباطات دیجیتال روزمره است. ایمیل دریافتی می‌تواند بدون اشتراک‌گذاری با فرستنده اصلی به گیرندگان خاص ارسال شود. Aspose.Email API SmtpClient قابلیت ارسال ایمیل به گیرندگان خاص را فراهم می‌کند. ویژگی آن ارسال مجدد متد می‌تواند برای ارسال مجدد ایمیل دریافت‌شده یا ذخیره‌شده به گیرندگان موردنظر همان‌طور که در این مقاله نشان داده شده استفاده شود. قطعه کد زیر نشان می‌دهد چگونه ایمیل را با استفاده از SMTP Client ارسال مجدد کنید.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

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

// Specify your mailing host server, Username, Password, Port and SecurityOptions
client.setHost("mail.server.com");
client.setUsername("username");
client.setPassword("password");
client.setPort(587);
client.setSecurityOptions(SecurityOptions.SSLExplicit);
MailMessage message = MailMessage.load(dataDir + "Message.eml");
client.forward("Recipient1@domain.com", "Recipient2@domain.com", message);

ارسال ایمیل بدون استفاده از MailMessage

API همچنین پشتیبانی می‌کند از ارسال مجدد پیام‌های EML بدون اینکه ابتدا بارگذاری شوند در MailMessage. این در مواردی مفید است که منابع محدود هستند، به‌خصوص حافظه سیستم.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java

String host = "mail.server.com";
String username = "username";
String password = "password";
int smtpPort = 587;
String sender = "Sender@domain.com";
MailAddressCollection recipients = new MailAddressCollection();
recipients.add("recepient1@domain.com, recepient2@domain.com");

try (SmtpClient client = new SmtpClient(host, smtpPort, username, password, SecurityOptions.Auto)) {
    String fileName = "test.eml";
    try (FileInputStream fs = new FileInputStream(new File(dataDir + fileName))) {
        client.forward(sender, recipients, fs);
    }
}

انجام ادغام نامه

ادغام نامه به شما کمک می‌کند یک دسته از پیام‌های ایمیل مشابه را ایجاد و ارسال کنید. محتوای اصلی ایمیل‌ها یکسان است، اما محتوا می‌تواند شخصی‌سازی شود. معمولاً جزئیات تماس گیرنده (نام، نام خانوادگی، شرکت و غیره) برای شخصی‌سازی ایمیل استفاده می‌شود.

|نمونه‌ای از نحوه کار ترکیب ایمیل:| | :- | |todo:image_alt_text| Aspose.Email به توسعه‌دهندگان اجازه می‌دهد ترکیب‌های ایمیل را که شامل داده از منابع مختلف هستند تنظیم کنند.

برای انجام ادغام نامه با Aspose.Email، مراحل زیر را انجام دهید:

  1. یک تابع با امضای نام ایجاد کنید
  2. یک نمونه از MailMessage کلاس.
  3. فرستنده، گیرنده، موضوع و بدنه را مشخص کنید.
  4. یک امضا برای انتهای ایمیل ایجاد کنید.
  5. یک نمونه از TemplateEngine کلاس بگیرید و به آن MailMessage نمونه.
  6. امضای را در TemplateEngine نمونه.
  7. یک نمونه از DataTable کلاس.
  8. ستون‌های Receipt، FirstName و LastName را به عنوان منابع داده در DataTable کلاس.
  9. یک نمونه از DataRow کلاس.
  10. آدرس دریافت‌کننده، نام و نام خانوادگی را در DataRow شیء.
  11. یک نمونه از MailMessageCollection کلاس
  12. مشخص کنید TemplateEngine  و DataTable نمونه‌ها در MailMessageCollection نمونه.
  13. یک نمونه از SmtpClient کلاس و سرور، پورت، نام کاربری و رمز عبور را مشخص کنید.
  14. ارسال ایمیل‌ها با استفاده از SmtpClient کلاس send متد.

در نمونه زیر، #FirstName# نشان‌دهندهٔ یک DataTable ستونی که مقدار آن توسط کاربر تنظیم می‌شود. قطعه کد زیر نشان می‌دهد چگونه ترکیب ایمیل را انجام دهید.

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

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

    // Add subject and from address
    msg.setSubject("Hello, #FirstName#");
    msg.setFrom(MailAddress.to_MailAddress("sender@sender.com"));

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

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

    msg.setHtmlBody(htmlBody);

    // 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", new TemplateRoutine() {
        public Object invoke(Object[] args) {
            return getSignature(args);
        }
    });

    // Create an instance of DataTable and Fill a DataTable as data source
    DataTable dt = new DataTable();
    dt.getColumns().add("Receipt");
    dt.getColumns().add("FirstName");
    dt.getColumns().add("LastName");

    DataRow dr;
    dr = dt.newRow();
    dr.set("Receipt", "Nancy&lt;Nancy@somedomain.com&gt;");
    dr.set("FirstName", "Nancy");
    dr.set("LastName", "Doe");
    dt.getRows().add(dr);
    dr = dt.newRow();
    dr.set("Receipt", "Andrew&lt;Andrew@somedomain.com&gt;");
    dr.set("FirstName", "Andrew");
    dr.set("LastName", "Doe");
    dt.getRows().add(dr);
    dr = dt.newRow();
    dr.set("Receipt", "Janet&lt;Janet@somedomain.com&gt;");
    dr.set("FirstName", "Janet");
    dr.set("LastName", "Doe");
    dt.getRows().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.setSecurityOptions(SecurityOptions.Auto);

        // Send messages in bulk
        client.send(messages);
    } catch (MailException ex) {
        System.err.println(ex);
    }

    catch (SmtpException ex) {
        System.err.println(ex);
    }

    System.out.println("Message sent after performing mail merge.");
}

// Template routine to provide signature
static Object getSignature(Object[] args) {
    return "Aspose.Email Team<br>Aspose Ltd.<br>" + new Date().toString();
}

انجام ترکیب ایمیل به‌صورت سطری

کاربر می‌تواند سطر داده منفرد را نیز ترکیب کند تا یک نتیجه کامل و آماده به دست آورد. MailMessage شیء. این TemplateEngine.merge متد می‌تواند برای انجام ترکیب ایمیل به‌صورت سطری استفاده شود.

// Create message from the data in current row.
MailMessage message = engine.merge(currentRow);