在某些情况下,您可能需要从应用程序中读取和解析 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。以下是执行此操作的步骤。
- 使用 MailMessage 类加载电子邮件文件。
- 使用 MailMessage.getHtmlBodyText(boolean) 方法提取电子邮件的正文。
以下代码示例展示了如何在 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 还允许您读取电子邮件的标题信息。以下是执行此操作的步骤。
- 使用 MailMessage 类加载电子邮件文件。
- 使用 MailMessage.getHeaders() 方法遍历电子邮件的标头集合。
以下代码示例显示了如何使用 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 中解码电子邮件标头
您还可以使用以下步骤解码电子邮件标头。
- 使用 MailMessage 类加载电子邮件文件。
- 使用 MailMessage.getHeaders().getDecodedValue(String name) 方法获取解码后的电子邮件标头值。
以下代码示例显示了如何在 Java 中解码电子邮件标头值。
// 加载电子邮件
MailMessage mail = MailMessage.load("test.eml");
// 从标头获取解码值
String decodedValue = mail.getHeaders().getDecodedValue("Thread-Topic");
// 打印值
System.out.println(decodedValue);
获取免费 API 许可证
您可以 请求免费的临时许可证 以便在没有评估限制的情况下使用 API。
现场演示
结论
在本文中,您学习了如何使用 Java 阅读电子邮件。此外,您还了解了如何从电子邮件中提取标题信息。您可以使用 文档 探索有关 Java 电子邮件 API 的更多信息。此外,如有任何疑问,您可以通过我们的 论坛 联系我们。