在存檔、遷移和合規工作流程中,將電子郵件訊息在不同格式之間轉換是常見需求。 Aspose.Words Cloud SDK for Java 提供強大的雲端函式庫,使在 Java 中將 EML 轉換為 MSG 簡單且可靠。在本指南中,您將學習如何設定 SDK、執行完整的 Java 範例、使用 cURL 執行相同操作,並了解使此函式庫成為電子郵件格式轉換理想選擇的關鍵特性。

如何在 Java 中執行 EML 到 MSG 轉換 - 步驟說明

  1. 設定 Aspose.Words Cloud 憑證: 建立 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 參考 中取得。

結論

在 Java 中將 EML 轉換為 MSG 變得輕而易舉,只要利用 Aspose.Words Cloud SDK for Java 的功能。本指南涵蓋了從環境準備到完整的 Java 實作以及等效的 cURL 呼叫。SDK 的雲端架構、串流支援以及精確的電子郵件渲染,使其成為處理郵件遷移或歸檔專案的開發人員的理想選擇。對於正式部署,您需要商業授權;授權價格詳情可在產品頁面上查閱,臨時授權可從 臨時授權頁面 取得。

常見問題

  • 在 Java 中開始 EML 轉換為 MSG 的最簡單方法是什麼?
    新增 Maven 依賴項,設定 API 憑證,並依照範例程式碼呼叫 ConvertDocumentRequest。SDK 會為您處理轉換邏輯。

  • 我可以在不先下載的情況下轉換存儲在雲端的 EML 檔案嗎?
    是的。通過 ConvertDocumentRequeststorageoutPath 參數提供雲端存儲路徑,API 將直接在 Aspose Cloud 存儲中讀取和寫入檔案。

  • 轉換是否保留電子郵件附件?
    絕對會。所有原始附件都被保留並嵌入生成的 .MSG 檔案中,確保訊息完整運作。

  • 每天可以執行的轉換次數有上限嗎?
    轉換次數上限取決於您的 Aspose Cloud 訂閱等級;較高級別的方案提供更大的每日配額和優先處理。

閱讀更多