如何使用 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 轉換為文字可開啟許多自動化情境:
- Automated ticket routing: 解析傳入的支援電子郵件,並根據從正文抽取的關鍵字進行路由。
- Compliance archiving: 儲存電子郵件的純文字版本,以供可搜尋的法律檔案存檔。
- CRM enrichment: 從電子郵件簽名中提取客戶資訊,並匯入 CRM 系統。
- 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 倉庫提供數十個範例,涵蓋附件抽取與中繼資料處理等進階情境。
資源
- Documentation: 在 GroupDocs Parser Java Documentation 探索詳細指南。
- API Reference: 在 GroupDocs API Reference 瀏覽完整 API。
- Download: 從 GroupDocs Downloads 取得最新二進位檔。
- GroupDocs downloads page: 透過 GroupDocs downloads page 存取相同的二進位檔。
- GitHub Repository: 在 GitHub 查看原始碼與社群貢獻。
- Free Support: 在 GroupDocs support forum 提問。
- GroupDocs Forum: 其他社群討論可於 GroupDocs Forum 找到。
Last Updated: 2026-07-02
Tested With: GroupDocs.Parser 25.5 for Java
Author: GroupDocs