在归档、迁移和合规工作流中,跨格式转换电子邮件是常见需求。 Aspose.Words Cloud SDK for Java 提供了强大的基于云的库,使得在 Java 中将 EML 转换为 MSG 既简单又可靠。在本指南中,您将学习如何设置 SDK、运行完整的 Java 示例、使用 cURL 执行相同操作,并了解使该库成为电子邮件格式转换理想选择的关键特性。

如何在 Java 中执行 EML 到 MSG 转换 - 步骤指南

  1. Configure Aspose.Words Cloud credentials: 创建一个 Configuration 对象并设置您的 clientIdclientSecret
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");
  1. 初始化 WordsApi 客户端: 将配置传递给 WordsApi 构造函数。
WordsApi wordsApi = new WordsApi(config);
  1. 将 EML 文件加载到流中:使用 FileInputStream 读取源 .EML 文件。
String inputFilePath = "sample.eml";
InputStream inputStream = new FileInputStream(inputFilePath);
  1. 创建并发送转换请求:构建一个 ConvertDocumentRequest,将 "msg" 指定为目标格式,然后调用 convertDocument
ConvertDocumentRequest request = new ConvertDocumentRequest(
        inputStream,          // Input document stream
        "msg",                // Desired output format
        null, null, null, null, null, null, null, null);
byte[] convertedBytes = wordsApi.convertDocument(request);

欲了解更多详情,请参阅 WordsApi 类参考

  1. 将返回的 MSG 字节保存到文件: 将字节数组写入 sample.msg
String outputFilePath = "sample.msg";
try (OutputStream outputStream = new FileOutputStream(outputFilePath)) {
    outputStream.write(convertedBytes);
}

完整代码示例:使用 Aspose.Words Cloud 进行电子邮件格式转换

以下示例演示了在 Java 中将 EML 转换为 MSG 的完整工作流。

import com.aspose.words.cloud.Configuration;
import com.aspose.words.cloud.api.WordsApi;
import com.aspose.words.cloud.model.requests.ConvertDocumentRequest;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

public class EmlToMsgConversion {
    public static void main(String[] args) {
        // Configure Aspose.Words Cloud credentials
        Configuration config = new Configuration();
        config.setClientId("YOUR_CLIENT_ID");
        config.setClientSecret("YOUR_CLIENT_SECRET");
        // Optional: config.setBaseUrl("https://api.aspose.cloud");

WordsApi wordsApi = new WordsApi(config);

String inputFilePath = "sample.eml";
        String outputFilePath = "sample.msg";

try (InputStream inputStream = new FileInputStream(inputFilePath)) {
            // Convert EML to MSG; format parameter is the target format
            ConvertDocumentRequest request = new ConvertDocumentRequest(
                    inputStream,          // Input document stream
                    "msg",                // Desired output format
                    null,                 // outPath (null for direct response)
                    null,                 // storage (null for default)
                    null,                 // loadEncoding
                    null,                 // password
                    null,                 // encryptedPassword
                    null,                 // fontsLocation
                    null,                 // useAntiAliasing
                    null                  // useHighQualityRendering
            );

// The API returns the converted document as a byte array
            byte[] convertedBytes = wordsApi.convertDocument(request);

// Write the result to a file
            try (OutputStream outputStream = new FileOutputStream(outputFilePath)) {
                outputStream.write(convertedBytes);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意: 此代码示例演示了核心功能。在项目中使用之前,请确保更新所有文件路径和配置值以匹配实际环境,验证已正确安装所有必需的依赖项,并在开发环境中彻底测试。如果遇到任何问题,请参阅官方文档或联系支持团队获取帮助。

使用 cURL 和 REST API 进行电子邮件转换

您可以通过直接调用 Aspose.Words Cloud REST API,而无需编写 Java 代码,实现相同的转换。

  1. 获取访问令牌
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

响应中包含 access_token

  1. 上传源 EML 文件 (如果在请求正文中发送,则为可选)
curl -X PUT "https://api.aspose.cloud/v4.0/words/storage/file/sample.eml" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -T "sample.eml"
  1. 执行转换
curl -X POST "https://api.aspose.cloud/v4.0/words/convert?format=msg" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@sample.eml" \
     -o "sample.msg"
  1. 下载已转换的 MSG 文件 (如果您使用了存储上传)
curl -X GET "https://api.aspose.cloud/v4.0/words/storage/file/sample.msg" \
        -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
        -o "sample.msg"

有关参数和选项的完整列表,请参阅官方 API 文档

准备环境

使用 Maven 将 Aspose.Words Cloud SDK for Java 添加到您的项目中:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words-cloud</artifactId>
    <version>26.8.0</version>
</dependency>

您也可以直接从发布页面下载 JAR。
先决条件:

  • Java 8 或更高版本
  • 拥有有效 clientIdclientSecret 的 Aspose Cloud 账户
  • api.aspose.cloud 的网络访问

什么使 Aspose.Words Cloud SDK for Java 适用于电子邮件转换

  • 原生支持 EML 和 MSG - API 能够理解这两种格式并保留电子邮件的元数据、附件和格式。
  • 基于流的处理 - 您可以使用 InputStreambyte[] 对象,无需在服务器上创建临时文件。
  • 高保真渲染 - 转换能够完整保留富文本、嵌入的图像以及 HTML 正文,完全与原始邮件中显示的相同。
  • 可扩展的云执行 - 大部分繁重工作在 Aspose 的服务器上完成,使您的 Java 应用保持轻量。
  • 完整的文档 - 详细的指南和参考资料可在 API reference 获取。

结论

在 Java 中将 EML 转换为 MSG 变得轻而易举,只需利用 Aspose.Words Cloud SDK for Java 的功能。本指南涵盖了从环境准备到完整的 Java 实现以及等效的 cURL 调用的所有内容。该 SDK 的云端架构、流支持以及精确的电子邮件渲染,使其成为处理邮件迁移或归档项目的开发者的理想选择。对于生产部署,您需要商业许可证;定价详情可在产品页面查看,临时许可证可从 临时许可证页面 获取。

FAQs

  • 在 Java 中启动 EML 到 MSG 转换的最简方法是什么?
    添加 Maven 依赖,配置您的 API 凭据,然后像示例代码中演示的那样调用 ConvertDocumentRequest。SDK 会为您处理转换逻辑。

  • 我可以在不先下载的情况下转换存储在云存储中的 EML 文件吗?
    是的。通过 ConvertDocumentRequeststorageoutPath 参数提供云存储路径,API 将直接在 Aspose Cloud 存储中读取和写入文件。

  • 转换是否保留电子邮件附件?
    完全保留。所有原始附件都会被保留并嵌入生成的 .MSG 文件中,确保邮件功能完整。

  • 是否对每天可以执行的转换次数有限制?
    转换限制取决于您的 Aspose Cloud 订阅层级;更高级别的计划提供更大的每日配额和优先处理。

阅读更多