Tạo và gửi email Outlook Java

Aspose.Email for Java là một API xử lý email mạnh mẽ cung cấp tất cả các tính năng cơ bản cũng như nâng cao để quản lý email. Nó cho phép bạn tạo các tin nhắn email Outlook, đọc các email hiện có và chuyển đổi các tin nhắn MSG, EML, PST, OST, MBOX và MHT sang các định dạng khác từ bên trong các ứng dụng Java của bạn. Trong bài viết này, tôi sẽ trình bày một số tính năng cơ bản nhưng quan trọng về cách tạo và gửi email Outlook bằng Java.

Tôi sẽ đề cập đến các tính năng sau của việc tạo và gửi email trong bài viết này:

Java Email API - Cài đặt

Có thể tải xuống Aspose.Email for Java từ phần Tải xuống hoặc cài đặt bằng các cấu hình Maven sau.

Kho:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

phụ thuộc:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>20.3</version>
    <classifier>jdk16</classifier>
</dependency>

Tạo tin nhắn email Outlook bằng Java

Aspose.Email for Java cho phép bạn tạo các email và lưu chúng ở định dạng email mong muốn bao gồm EML, EMLX, MSG và MHTML. Sau đây là các bước để tạo một email và lưu nó dưới dạng tệp.

  • Tạo một thể hiện của lớp MailMessage.
  • Đặt các thuộc tính của thư như Chủ đề, Nội dung, Tới, CC, v.v.
  • Thêm tệp đính kèm nếu cần.
  • Lưu email ở định dạng mong muốn bằng phương pháp MailMessage.save().

Mẫu mã sau đây cho biết cách tạo thư email Outlook bằng Java.

MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung và thông tin người gửi
message.setSubject("New message created by Aspose.Email for .NET");
message.setBody("This is the body of the email.");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Thêm vào người nhận và người nhận CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Thêm tệp đính kèm
message.getAttachments().addItem(new Attachment("word.docx"));

// Lưu tin nhắn ở định dạng EML, EMLX, MSG và MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml());
message.save("EmailMessage.emlx", SaveOptions.createSaveOptions(MailMessageSaveType.getEmlxFormat()));
message.save("EmailMessage.msg", SaveOptions.getDefaultMsgUnicode());
message.save("EmailMessage.mhtml", SaveOptions.getDefaultMhtml());

Tạo Email với Nội dung HTML bằng Java

Trong ví dụ trước, chúng tôi chỉ cần tạo một email văn bản thuần túy và lưu nó dưới dạng tệp email. Tuy nhiên, hầu hết các email ngày nay đều được tạo bằng phần thân HTML để tổ chức và trình bày nội dung email tốt. Trong trường hợp này, các thẻ HTML được sử dụng để chỉ định bố cục của email. Hãy xem cách tạo email có nội dung HTML bằng Aspose.Email for Java.

Mẫu mã sau đây cho biết cách tạo email có nội dung HTML bằng Java.

MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung và thông tin người gửi
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Thêm vào người nhận và người nhận CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Lưu tin nhắn ở định dạng EML, EMLX, MSG và MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Tạo Email có mã hóa cụ thể bằng Java

Aspose.Email for Java cũng cho phép bạn đặt mã hóa văn bản mong muốn cho các email. Tiêu chuẩn mã hóa được sử dụng để thông báo cho ứng dụng email hoặc trình duyệt về cách diễn giải các ký tự trong nội dung của email. Sau đây là các bước để tạo một email với một tiêu chuẩn mã hóa cụ thể.

Mẫu mã sau đây cho biết cách tạo email với tiêu chuẩn mã hóa cụ thể bằng Java.

MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung và thông tin người gửi
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Chỉ định mã hóa 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Thêm vào người nhận và người nhận CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Lưu tin nhắn ở định dạng EML, EMLX, MSG và MHTML
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

Gửi email Outlook bằng Java

Khi bạn đã tạo một email, bạn có thể gửi nó cho người nhận bằng Giao thức truyền thư đơn giản (SMTP). Sau đây là các bước để gửi email bằng Aspose.Email for Java.

  • Tạo một email mới hoặc tải một email hiện có bằng lớp MailMessage.
  • Tạo một thể hiện của lớp SmtpClient và đặt máy chủ, tên người dùng, mật khẩu và cổng của nó.
  • Gửi email bằng phương thức SmtpClient.send().

Mẫu mã sau đây cho biết cách gửi email qua ứng dụng khách SMTP trong Java.

MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung và thông tin người gửi
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Chỉ định mã hóa 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Thêm vào người nhận và người nhận CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Tạo một thể hiện của Lớp SmtpClient
SmtpClient client = new SmtpClient();

// Chỉ định máy chủ lưu trữ thư, Tên người dùng, Mật khẩu, Cổng
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send sẽ gửi tin nhắn này
	client.send(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Gửi email không đồng bộ bằng Java

Aspose.Email for Java cũng cho phép bạn gửi email không đồng bộ. Đối với điều này, bạn có thể sử dụng phương thức SmtpClient.beginSend(). Mẫu mã sau đây cho biết cách gửi email không đồng bộ bằng Java.

MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung và thông tin người gửi
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Chỉ định mã hóa 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// Thêm vào người nhận và người nhận CC
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// Tạo một thể hiện của Lớp SmtpClient
SmtpClient client = new SmtpClient();

// Chỉ định máy chủ lưu trữ thư, Tên người dùng, Mật khẩu, Cổng
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.beginSend sẽ gửi tin nhắn này
	client.beginSend(message); 
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Gửi email có xác nhận đã đọc bằng Java

Bạn cũng có thể thêm yêu cầu xác nhận đã đọc vào email. Tính năng này cho phép bạn nhận được thông báo sau khi nhận được email. Sau đây là các bước để tạo và gửi một email chứa yêu cầu xác nhận đã đọc.

Mẫu mã sau đây cho biết cách gửi email chứa biên nhận đã đọc bằng Java.

MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung và thông tin người gửi
message.setSubject("New message created by Aspose.Email for .NET");
message.setHtmlBody("<b>This line is in bold.</b> <br/> <br/> <font color=blue>This line is in blue color</font>");
message.setFrom(new MailAddress("from@domain.com", "Sender Name", false));

// Đặt tùy chọn thông báo
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);
message.getHeaders().add("Return-Receipt-To", "from@domain.com");
message.getHeaders().add("Disposition-Notification-To", "from@domain.com"); 

// Thêm vào người nhận 
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false)); 

// Tạo một thể hiện của Lớp SmtpClient
SmtpClient client = new SmtpClient();

// Chỉ định máy chủ lưu trữ thư, Tên người dùng, Mật khẩu, Cổng
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send sẽ gửi tin nhắn này
	client.send(message);
}

catch (Exception ex)
{
	ex.printStackTrace();
}

Gửi email hàng loạt bằng Java

Có thể xảy ra trường hợp bạn cần gửi hàng loạt email khác nhau. Trong trường hợp đó, bạn chỉ cần thêm tất cả các email vào đối tượng MailMessageCollection và chuyển nó tới ứng dụng khách SMTP để gửi. Mẫu mã sau đây cho biết cách gửi hàng loạt email bằng Java.

// Tạo các thể hiện của lớp MailMessage và chỉ định Đến, Từ, Chủ đề và Tin nhắn
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?");

// Tạo một phiên bản MailMessageCollection và thêm các thông báo email vào đó
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);		

// Tạo SmtpClient và chỉ định máy chủ, cổng, tên người dùng và mật khẩu
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
 
try
{  
	// Gửi tin nhắn
	client.send(manyMsg); 
}
catch (Exception ex)
{
	  ex.printStackTrace();
}

Bản trình diễn trực tiếp

Sự kết luận

Trong bài đăng này, tôi đã chỉ cho bạn cách tạo email Outlook và lưu chúng dưới dạng định dạng EML, MSG và MTH bằng Java. Ngoài ra, các cách gửi email khác nhau trong Java bằng ứng dụng khách STMP cũng được thảo luận. Bạn có thể tìm hiểu thêm về Thư viện email Java của Aspose bằng cách sử dụng tài liệu.

Xem thêm

Tạo Tin nhắn Outlook và Gửi Email bằng C#Tìm nạp email từ máy chủ POP3 bằng PythonLấy danh sách liên hệ từ Microsoft Exchange Server bằng C#
Nhận danh sách liên hệ từ Microsoft Exchange Server bằng JavaNhập danh bạ từ Gmail trong C#Nhập danh bạ Gmail bằng Java
Chuyển email vào thư mục trên Microsoft Exchange Server bằng C#[Di chuyển Email đến một thư mục trên Microsoft Exchange Server bằng Java](https://blog.aspose.com/vi/2022/03/10/move-email-to-a-folder-on-ms-exchange-server-in- java/)Phân tích cú pháp tệp PST của Outlook bằng Python
Đọc email từ hộp thư dùng chung trên máy chủ Exchange bằng C#Đọc email từ hộp thư dùng chung trên Exchange Server bằng JavaĐọc tệp MS Outlook PST trong C# .NET
Đọc tệp MS Outlook PST bằng JavaĐọc tệp MSG của Outlook bằng C#Làm việc với Cuộc trò chuyện trên Máy chủ MS Exchange bằng C#
Làm việc với Cuộc trò chuyện trên MS Exchange Server bằng JavaViết và đọc tin nhắn trên Thunderbird Storage bằng C#Viết và đọc tin nhắn trên Thunderbird Storage bằng Java
Viết và đọc tin nhắn trên Thunderbird Storage bằng PythonGửi email qua SMTP bằng PythonĐọc email từ Exchange Server bằng C#