创建和发送 Outlook 电子邮件 Java

Aspose.Email for Java 是一个强大的电子邮件处理 API,它提供了电子邮件管理的所有基本和高级功能。它允许您在 Java 应用程序中创建 Outlook 电子邮件、阅读现有电子邮件以及将 MSG、EML、PST、OST、MBOX 和 MHT 消息转换为其他格式。在本文中,我将演示如何使用 Java 创建和发送 Outlook 电子邮件的一些基本但重要的功能。

我将在本文中介绍创建和发送电子邮件的以下功能:

Java 电子邮件 API - 安装

Aspose.Email for Java 可以从 Downloads 部分下载或使用以下 Maven 配置安装。

存储库:

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

依赖:

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

使用 Java 创建 Outlook 电子邮件

Aspose.Email for Java 可让您创建电子邮件消息并将其保存为所需的电子邮件格式,包括 EML、EMLX、MSG 和 MHTML。以下是创建电子邮件并将其保存为文件的步骤。

  • 创建 MailMessage 类的实例。
  • 设置邮件的属性,例如主题、正文、收件人、抄送等。
  • 如果需要,添加附件。
  • 使用 MailMessage.save() 方法以所需的格式保存电子邮件。

以下代码示例展示了如何使用 Java 创建 Outlook 电子邮件。

MailMessage message = new MailMessage();

// 设置邮件主题、正文和发件人信息
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));

// 添加到收件人和抄送收件人
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false));

// 添加附件
message.getAttachments().addItem(new Attachment("word.docx"));

// 以 EML、EMLX、MSG 和 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());

使用 Java 创建带有 HTML 正文的电子邮件

在前面的示例中,我们只是创建了一个纯文本电子邮件并将其保存为电子邮件文件。然而,今天的大多数电子邮件都是使用 HTML 正文创建的,以便很好地组织和呈现电子邮件的内容。在这种情况下,HTML 标记用于指定电子邮件的布局。让我们看看如何使用 Aspose.Email for Java 创建带有 HTML 正文的电子邮件。

以下代码示例展示了如何使用 Java 创建带有 HTML 正文的电子邮件。

MailMessage message = new MailMessage();

// 设置邮件主题、正文和发件人信息
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));

// 添加到收件人和抄送收件人
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// 以 EML、EMLX、MSG 和 MHTML 格式保存消息
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

使用 Java 创建具有特定编码的电子邮件

Aspose.Email for Java 还允许您为电子邮件设置所需的文本编码。编码标准用于告诉电子邮件应用程序或浏览器如何解释电子邮件正文中的字符。以下是使用特定编码标准创建电子邮件的步骤。

以下代码示例展示了如何使用 Java 创建具有特定编码标准的电子邮件。

MailMessage message = new MailMessage();

// 设置邮件主题、正文和发件人信息
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));

// 指定编码 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// 添加到收件人和抄送收件人
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// 以 EML、EMLX、MSG 和 MHTML 格式保存消息
message.save("EmailMessage.eml", SaveOptions.getDefaultEml()); 

使用 Java 发送 Outlook 电子邮件

创建电子邮件后,您可以使用简单邮件传输协议 (SMTP) 将其发送给收件人。以下是使用 Aspose.Email for Java 发送电子邮件的步骤。

  • 使用 MailMessage 类创建新电子邮件或加载现有电子邮件。
  • 创建 SmtpClient 类的实例并设置其主机、用户名、密码和端口。
  • 使用 SmtpClient.send() 方法发送电子邮件。

以下代码示例显示了如何通过 Java 中的 SMTP 客户端发送电子邮件。

MailMessage message = new MailMessage();

// 设置邮件主题、正文和发件人信息
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));

// 指定编码 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// 添加到收件人和抄送收件人
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// 创建 SmtpClient 类的实例
SmtpClient client = new SmtpClient();

// 指定您的邮件主机服务器、用户名、密码、端口
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send 将发送此消息
	client.send(message); 
}

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

使用 Java 异步发送电子邮件

Aspose.Email for Java 还允许您异步发送电子邮件。为此,您可以使用 SmtpClient.beginSend() 方法。以下代码示例展示了如何使用 Java 异步发送电子邮件。

MailMessage message = new MailMessage();

// 设置邮件主题、正文和发件人信息
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));

// 指定编码 
message.setBodyEncoding(Charset.forName("US-ASCII"));

// 添加到收件人和抄送收件人
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false));
message.getCC().addItem(new MailAddress("cc1@domain.com", "Recipient 3", false)); 

// 创建 SmtpClient 类的实例
SmtpClient client = new SmtpClient();

// 指定您的邮件主机服务器、用户名、密码、端口
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.beginSend 将发送此消息
	client.beginSend(message); 
}

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

使用 Java 发送带有已读回执的电子邮件

您还可以向电子邮件添加已读回执请求。此功能允许您在收到电子邮件后收到通知。以下是创建和发送包含已读回执请求的电子邮件的步骤。

以下代码示例展示了如何使用 Java 发送包含已读回执的电子邮件。

MailMessage message = new MailMessage();

// 设置邮件主题、正文和发件人信息
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));

// 设置通知选项
message.setDeliveryNotificationOptions(DeliveryNotificationOptions.OnSuccess);
message.getHeaders().add("Return-Receipt-To", "from@domain.com");
message.getHeaders().add("Disposition-Notification-To", "from@domain.com"); 

// 添加到收件人 
message.getTo().addItem(new MailAddress("to1@domain.com", "Recipient 1", false)); 

// 创建 SmtpClient 类的实例
SmtpClient client = new SmtpClient();

// 指定您的邮件主机服务器、用户名、密码、端口
client.setHost("smtp.server.com");
client.setUsername("Username");
client.setPassword("Password");
client.setPort(25);

try
{
	// Client.Send 将发送此消息
	client.send(message);
}

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

使用 Java 发送批量电子邮件

当您需要发送大量不同的电子邮件时,可能会出现这种情况。在这种情况下,您可以简单地将所有电子邮件消息添加到 MailMessageCollection 对象并将其传递给 SMTP 客户端进行发送。以下代码示例展示了如何使用 Java 发送大量电子邮件。

// 创建 MailMessage 类的实例并指定 To、From、Subject 和 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?");

// 创建 MailMessageCollection 的实例并向其添加电子邮件消息
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.addItem(message1);
manyMsg.addItem(message2);
manyMsg.addItem(message3);		

// 创建 SmtpClient 并指定服务器、端口、用户名和密码
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
 
try
{  
	// 发送信息
	client.send(manyMsg); 
}
catch (Exception ex)
{
	  ex.printStackTrace();
}

现场演示

结论

在这篇文章中,我向您展示了如何使用 Java 创建 Outlook 电子邮件并将它们保存为 EML、MSG 和 MTH 格式。此外,还讨论了使用 STMP 客户端在 Java 中发送电子邮件的不同方式。您可以使用 文档 了解有关 Aspose 的 Java 电子邮件库 的更多信息。

也可以看看

使用 C# 创建 Outlook 消息和发送电子邮件在 Python 中从 POP3 服务器获取电子邮件用 C# 从 Microsoft Exchange Server 获取联系人列表
用 Java 从 Microsoft Exchange Server 获取联系人列表在 C# 中从 Gmail 导入联系人在 Java 中导入 Gmail 联系人
在 C# 中将电子邮件移动到 Microsoft Exchange Server 上的文件夹在 Java 中将电子邮件移动到 Microsoft Exchange Server 上的文件夹在 Python 中解析 Outlook PST 文件
用 C# 从 Exchange Server 上的共享邮箱读取电子邮件用 Java 从 Exchange Server 上的共享邮箱读取电子邮件在 C# .NET 中读取 MS Outlook PST 文件
用 Java 读取 MS Outlook PST 文件阅读 C# 中的 Outlook MSG 文件在 C# 中使用 MS Exchange Server 上的对话
在 Java 中使用 MS Exchange Server 上的对话使用 C# 在 Thunderbird 存储上读写消息在 Java 中的 Thunderbird 存储上读写消息
在 Python 中使用 Thunderbird 存储读写消息在 Python 中通过 SMTP 发送电子邮件用 C# 从 Exchange Server 读取电子邮件