如何使用 GroupDocs.Parser 将 MSG 转换为文本(Java)

从 Outlook .msg 文件中提取正文、主题和附件是自动化、归档和分析的常见需求。在本教程中,您将学习如何使用 GroupDocs.Parser for Java 快速可靠地 将 MSG 转换为文本。我们将逐步演示环境设置、具体的 API 调用以及保持代码整洁高效的最佳实践技巧。

快速答案

  • 什么库可以在 Java 中将 MSG 转换为文本? GroupDocs.Parser for Java
  • 支持哪种电子邮件格式? Outlook .msg 文件(原生 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>

定义锚点: Parser 类是读取任何受支持文档(包括电子邮件文件)的入口点。

直接下载

如果您更喜欢手动设置,请从 GroupDocs 发布 下载最新的 JAR。

获取许可证

临时许可证页面 获取临时试用许可证。此许可证可解除评估限制,让您测试所有功能。

如何在 Java 中将 MSG 转换为文本

加载电子邮件文件,验证支持文本提取,然后使用 TextReader 读取内容。

直接回答(40‑70 字):
创建一个指向 .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;

定义锚点: 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;
}

提示: 此检查可防止对仅允许提取元数据的格式抛出 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());
}

为什么重要: 流式处理避免将整个电子邮件加载到内存中,这在处理带有大量附件的大邮件时至关重要。

常见问题及解决方案

  • 文件路径不正确: 无效路径会抛出 IOException。在初始化解析器之前,请验证路径并使用 Files.exists(Paths.get(path))
  • 不支持的格式: 并非所有电子邮件格式都提供文本。使用 parser.getFeatures().isText() 来防止处理不受支持的文件。
  • 许可证未应用: 如果未加载试用许可证,您会看到许可错误。License 用于应用 GroupDocs 的试用或商业许可证以启用全部功能。在应用程序中尽早加载许可证文件,例如 License license = new License(); license.setLicense("path/to/license.lic");

实际应用

将 MSG 转换为文本可开启许多自动化场景:

  1. 自动工单分配: 解析收到的支持邮件,并根据正文中提取的关键字进行路由。
  2. 合规归档: 将电子邮件的纯文本版本存储用于可搜索的法律档案。
  3. CRM 丰富化: 从电子邮件签名中提取客户信息并导入 CRM 系统。
  4. 情感分析: 将提取的电子邮件正文输入 NLP 流程,以评估客户情绪。

性能提示

  • 复用 Parser 实例: 在批处理时,尽可能复用同一个 Parser 对象,以降低 JVM 开销。
  • 并行处理: 使用 Java 的 ForkJoinPool 并发处理多个文件,但要限制并行度以避免过度的内存压力。
  • 流式写入磁盘: 对于极大的邮件,直接将 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 发布 页面上列出的最新版本号,然后运行 mvn clean install

Q: 在哪里可以找到更多代码示例?
A: 官方文档和 GitHub 仓库包含数十个示例,涵盖附件提取、元数据处理等高级场景。

资源


最后更新: 2026-07-02
测试环境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs

相关教程