在某些情況下,您可能需要從您的應用程序中讀取和解析 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 的更多信息。此外,如有任何疑問,您可以通過我們的論壇 與我們聯繫。