用 Java 阅读电子邮件

在某些情况下,您可能需要从应用程序中读取和解析 EML 或 MSG 电子邮件。为了以编程方式完成此操作,本文展示了如何从 Java 中的电子邮件消息中提取信息。特别是,您将学习如何阅读电子邮件的主题、发件人、发件人、正文和标题信息。

用于阅读电子邮件的 Java API

为了阅读电子邮件,我们将使用 Aspose.Email for Java。它是一个强大的 API,可让您在 Java 中创建功能丰富的电子邮件客户端。您可以 下载 API 的 JAR 或使用以下 Maven 配置安装它。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>21.3</version>
    <classifier>jdk16</classifier>
</dependency>

使用 Java 阅读电子邮件

以下是用 Java 阅读电子邮件的步骤。

  • 使用 MailMessage 类加载电子邮件文件。
  • 使用 MailMessage 对象读取电子邮件的内容,例如 To、From、Subject、Body 等。

以下代码示例展示了如何使用 Java 阅读电子邮件。

// 通过加载 Eml 文件创建 MailMessage 实例
MailMessage message = MailMessage.load("test.eml");

System.out.print("From: ");
// 获取发件人信息
System.out.println(message.getFrom());
		
System.out.print("To: ");
// 获取收件人信息
System.out.println(message.getTo());
		
System.out.print("Subject: ");
// 获取主题
System.out.println(message.getSubject());
		
System.out.print("HtmlBody: ");
// 获取 HTML 正文
System.out.println(message.getHtmlBody());
		
System.out.print("TextBody: ");
// 获取文本正文
System.out.println(message.getTextBody());
		
System.out.print("HtmlBodyText: ");
// 获取文本正文 from HTML
System.out.println(message.getHtmlBodyText());

在 Java 中将电子邮件正文提取为纯文本

您还可以阅读电子邮件并将其正文提取为纯文本而不是 HTML。以下是执行此操作的步骤。

以下代码示例展示了如何在 Java 中将电子邮件正文提取为纯文本。

// 加载电子邮件
MailMessage mail = MailMessage.load("HtmlWithUrlSample.eml");

body_with_url = mail.getHtmlBodyText(true);// body will contain URL
String body_without_url = mail.getHtmlBodyText(false);// body will not contain URL

// 打印电子邮件信息
System.out.println("Body with URL: " + body_with_url);
System.out.println("Body without URL: " + body_without_url);

用Java从电子邮件中提取标题信息

Aspose.Email for Java 还允许您读取电子邮件的标题信息。以下是执行此操作的步骤。

以下代码示例显示了如何使用 Java 读取电子邮件的标题。

// 通过加载 EML 文件创建 MailMessage 实例
MailMessage message = MailMessage.load("test.eml");

// 打印出所有标题
System.out.println("Printing all Headers:\n\n");
for (int i=0; i< message.getHeaders().size(); i++)
	System.out.println(message.getHeaders().get(i));

在 Java 中解码电子邮件标头

您还可以使用以下步骤解码电子邮件标头。

以下代码示例显示了如何在 Java 中解码电子邮件标头值。

// 加载电子邮件
MailMessage mail = MailMessage.load("test.eml");

// 从标头获取解码值
String decodedValue = mail.getHeaders().getDecodedValue("Thread-Topic");

// 打印值
System.out.println(decodedValue);

获取免费 API 许可证

您可以 请求免费的临时许可证 以便在没有评估限制的情况下使用 API。

现场演示

结论

在本文中,您学习了如何使用 Java 阅读电子邮件。此外,您还了解了如何从电子邮件中提取标题信息。您可以使用 文档 探索有关 Java 电子邮件 API 的更多信息。此外,如有任何疑问,您可以通过我们的 论坛 联系我们。

也可以看看