如何使用 GroupDocs.Parser 在 Java 中將 MSG 轉換為文字

從 Outlook .msg 檔案中提取正文、主旨和附件是自動化、歸檔和分析的常見需求。在本教學中,您將學習如何使用 GroupDocs.Parser for Java 將 MSG 轉換為文字,快速且可靠。我們將逐步說明環境設定、具體的 API 呼叫,以及保持程式碼乾淨且效能良好的最佳實踐技巧。

快速解答

  • 什麼函式庫可以在 Java 中將 MSG 轉換為文字? GroupDocs.Parser for Java
  • 支援哪種電子郵件格式? Outlook .msg files(原生 Outlook 格式)
  • 測試是否需要授權? 是 — 可從 GroupDocs 取得臨時試用授權
  • 我可以一次處理多封訊息嗎? 絕對可以;建議在大量情境下使用批次處理
  • 需要哪個 Java 版本? JDK 8 或更新版本

什麼是「將 MSG 轉換為文字」?

將 MSG 轉換為文字指的是以程式方式開啟 Outlook .msg 檔案,提取其文字元件——例如主旨、正文內容,以及(可選的)附件名稱——並將其作為純文字字串返回,以便儲存、索引或供其他應用程式處理。

為什麼使用 GroupDocs.Parser 來轉換 MSG 為文字?

GroupDocs.Parser 提供廣泛的格式支援,能處理 MSG 以及其他數十種電子郵件與文件類型,無需外部工具。它以高保真度保留 Unicode 與 HTML 格式,透過串流 API 運作以降低記憶體使用,並提供簡易的 Maven 整合,使其在單一檔案與大量批次處理情境下皆相當理想。

前置條件

  • Java Development Kit (JDK): 已安裝 8 版或更新版本。
  • Maven: 用於相依性管理與建置自動化。
  • IDE(可選): IntelliJ IDEA、Eclipse,或您偏好的任何編輯器。
  • 基本的 Java 知識 以及對 Outlook .msg 檔案的熟悉度。

為 Java 設定 GroupDocs.Parser

首先,將 GroupDocs.Parser 函式庫加入您的 Maven 專案。

Maven 設定

在您的 pom.xml 檔案中加入儲存庫與相依性條目:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

Definition anchor: Parser 類別是讀取任何支援文件(包括電子郵件檔案)的入口點。

直接下載

如果您偏好手動設定,請從 GroupDocs releases 下載最新的 JAR。

取得授權

temporary license page 取得臨時試用授權。此授權會移除評估限制,讓您測試所有功能。

如何在 Java 中將 MSG 轉換為文字

載入電子郵件檔案,驗證是否支援文字抽取,並使用 TextReader 讀取內容。

Direct answer (40‑70 words):
建立一個指向 .msg 檔案路徑的 Parser 實例,呼叫 parser.getFeatures().isText() 以確認支援,接著使用 TextReader 讀取電子郵件的主旨與正文。最後,輸出字串或寫入檔案——整個流程僅需三個 API 呼叫。

步驟 1:匯入必要類別

首先在您的 Java 原始檔案中匯入必要的 GroupDocs.Parser 類別。

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.TextReader;
import java.io.IOException;

Definition anchor: TextReader 是一個高階 API,能逐行串流文件的文字內容,以提升記憶體使用效率。

步驟 2:以 MSG 路徑初始化 Parser

Parser 是讀取支援文件(包括 MSG 電子郵件檔案)的主要入口點。
以您欲處理的 .msg 檔案的絕對或相對路徑建立 Parser 實例。

String emailFilePath = "YOUR_DOCUMENT_DIRECTORY/sample.msg"; // Replace with your document path

try (Parser parser = new Parser(emailFilePath)) {
    if (!parser.getFeatures().isText()) {
        System.out.println("Text extraction isn't supported.");
        return;
    }
    
    try (TextReader reader = parser.getText()) {
        String emailContent = reader.readToEnd();
        System.out.println(emailContent);
    }
} catch (IOException e) {
    e.printStackTrace();
}

步驟 3:驗證文字抽取能力

在讀取之前,檢查目前的文件類型是否支援文字抽取:

if (!parser.getFeatures().isText()) {
    System.out.println("Text extraction not supported for this file.");
    return;
}

Tip: 此檢查可防止對僅允許抽取中繼資料的格式拋出 UnsupportedOperationException

步驟 4:讀取並輸出電子郵件文字

TextReader 逐行串流文件的文字內容,實現低記憶體處理。
使用 TextReader 串流主旨與正文。讀取器會回傳每一行文字,您可以將其串接或直接寫入檔案。

try (TextReader reader = parser.getText()) {
    StringBuilder emailContent = new StringBuilder();
    while (reader.readLine() != null) {
        emailContent.append(reader.getCurrentLine()).append(System.lineSeparator());
    }
    System.out.println(emailContent.toString());
}

Why this matters: 串流可避免將整封電子郵件載入記憶體,這在處理含大量附件的大型訊息時尤為重要。

常見問題與解決方案

  • Incorrect file path: 無效的路徑會拋出 IOException。在初始化 parser 前,請驗證路徑並使用 Files.exists(Paths.get(path))
  • Unsupported format: 並非所有電子郵件格式都能抽取文字。使用 parser.getFeatures().isText() 以防止不支援的檔案。
  • License not applied: 若未載入試用授權,將會看到授權錯誤。License 會套用 GroupDocs 的試用或商業授權以啟用完整功能。請在應用程式早期使用 License license = new License(); license.setLicense("path/to/license.lic"); 載入授權檔案。

實務應用

將 MSG 轉換為文字可開啟許多自動化情境:

  1. Automated ticket routing: 解析傳入的支援電子郵件,並根據從正文抽取的關鍵字進行路由。
  2. Compliance archiving: 儲存電子郵件的純文字版本,以供可搜尋的法律檔案存檔。
  3. CRM enrichment: 從電子郵件簽名中提取客戶資訊,並匯入 CRM 系統。
  4. Sentiment analysis: 將抽取的電子郵件正文輸入 NLP 流程,以評估客戶情緒。

效能建議

  • Reuse Parser instances: 在批次處理時,盡可能重複使用單一 Parser 物件,以減少 JVM 開銷。
  • Parallel processing: 使用 Java 的 ForkJoinPool 同時處理多個檔案,但需限制平行度以避免過度記憶體壓力。
  • Stream to disk: 對於極大型的電子郵件,將 TextReader 輸出直接導向檔案,而非組成大型 StringBuilder

常見問答

Q:使用 GroupDocs.Parser 可以將哪些檔案格式轉換為文字?
A:超過 50 種格式,包括 .msg.eml.pdf.docx.xlsx,皆可轉換為純文字。

Q:如何處理加密或受密碼保護的電子郵件?
A:先使用自訂邏輯解密電子郵件,然後將解密後的串流傳給 Parser。此函式庫不會自動解密受保護的檔案。

Q:MSG 檔案有大小限制嗎?
A:得益於串流架構,GroupDocs.Parser 可處理高達 2 GB 的檔案,而無需將整個檔案載入記憶體。

Q:如何更新至最新版本的 GroupDocs.Parser?
A:在 pom.xml 中將 <version> 元素改為 GroupDocs releases 頁面上列出的最新版本號,然後執行 mvn clean install

Q:在哪裡可以找到更多程式碼範例?
A:官方文件與 GitHub 倉庫提供數十個範例,涵蓋附件抽取與中繼資料處理等進階情境。

資源


Last Updated: 2026-07-02
Tested With: GroupDocs.Parser 25.5 for Java
Author: GroupDocs

相關教學