EML 轉 MSG

EML 是電子郵件訊息的檔案副檔名,以 Outlook、Outlook Express、Windows Live Mail 或 Thunderbird 支援的 MIME RFC 822 標準格式儲存到檔案中。此外,EML 檔案格式是用於儲存電子郵件的純文字 MIME(rfc822)檔案格式。另一方面,MSG 是一種基於 Microsoft 的 Outlook MAPI 的複合檔案二進位格式。此外,Outlook Item MSG (.msg) 檔案格式是一種在檔案中儲存單一訊息物件(例如電子郵件、約會、聯絡人、任務等)的語法。

因此,在本文中,我們將討論如何使用 REST API 以程式設計方式將 EML 檔案轉換為 MSG 格式的步驟。

電子郵件處理 API

Aspose.Email Cloud 是一個基於REST 的API,提供建立、操作和呈現常見電子郵件格式(Outlook EML、MSG、iCalendar 檔案VCard)的功能,以便其他支援的文件格式。您可以處理郵件標題、寄件者地址、郵件中包含的內容,或處理電子郵件的附件(如文件、照片、文件等)。同時,在您的應用程式中實現聯絡人卡片處理(操作 VCard)或透過 iCalendar 支援 處理日曆。

為了方便開發人員,我們圍繞雲端 API 創建了包裝器,以便您在自己最喜歡的 IDE 中獲得所有功能。在繼續之前,我們建議您訪問以下連結以了解有關如何安裝 Aspose.Cloud SDKs 的更多資訊。

在 C# 中將 EML 轉換為 MSG

請依照以下步驟滿足您的要求:

  • 首先,透過傳遞 ClientID 和 Client Secret 詳細資訊作為參數來建立 EmailCloud 類別的對象
  • 其次,將來源郵件檔案讀取到File.OpenRead實例並上傳到雲端儲存UploadFile(…)方法
  • 第三,建立一個 EmailGetAsFileRequest 實例,傳遞輸入檔和結果格式
  • 現在使用 EmailGetAsFile API 將雲端儲存中的 EML 檔案轉換為 MSG 格式
  • 最後,使用 File.Create 實例呼叫自訂方法將結果檔案儲存到本機磁碟機
// 如需完整的範例和數據文件,請訪問 
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet

// 從 https://dashboard.aspose.cloud/ 取得客戶端憑證
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// 建立 EmailCloud Api 實例
var emailApi = new EmailCloud(clientSecret, clientID);
       
// 來源 EML 檔案名稱
string name = "sample.eml";
// 產生的 MSG 檔案的名稱
string resultantFile = "converted.msg";
// 結果文件的格式
string toFormat = "Msg";

 try
{
    // 讀取來源 EML 到流對象
    using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
    {
    
        // 將來源 EML 檔案上傳到雲端存儲
        emailApi.CloudStorage.File.UploadFile(new Aspose.Email.Cloud.Sdk.Model.UploadFileRequest(name, file));
        
        // 透過傳遞輸入檔案和結果格式建立 EmailGetAsFileRequest 實例
        var convertRequest = new EmailGetAsFileRequest(name, toFormat);
        
        // 執行轉換操作
        var response = emailApi.Email.GetAsFile(convertRequest);

        // 如果轉換成功,則列印成功訊息
        if (response != null && response.Equals("OK"))
        {
            // 列印成功訊息
            Console.WriteLine("Successfully converted EML to MSG !");
            Console.ReadKey();
        }
        
        // 將結果檔案流儲存到本機磁碟機
        saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
    }
}catch (Exception ex)
{
    // 在控制台中列印異常
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// 自訂方法將輸出儲存到系統磁碟機
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

上述範例中使用的範例檔案可以從 sample.emlconverted.msg 下載。

如果您需要從本機磁碟機載入檔案並執行轉換,請嘗試使用 EmailConvert API。

使用 cURL 指令將 EML 轉換為 MSG

由於 Aspose.Email Cloud 是根據 REST 架構開發的,因此可以透過 cURL 命令輕鬆存取。使用終端應用程式/命令提示字元存取 API。因此,第一步是根據 Aspose.Cloud 儀表板 上指定的客戶端憑證產生 JWT 存取權杖。更多詳細資訊請造訪如何使用客戶端 ID 和客戶端金鑰取得 JWT 令牌

一旦我們獲得 JWT 令牌,請使用以下命令將雲端儲存中可用的 EML 檔案轉換為 MSG 格式,並將輸出保存在本機磁碟機上。為了轉換目的,使用了 EmailGetAsFile API。

curl -X GET "https://api.aspose.cloud/v4.0/email/as-file?fileName=sample.eml&format=Msg" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.msg

結論

在本文中,我們討論了 Aspose.Email Cloud 處理流行電子郵件格式的功能。具體來說,我們討論了使用 C# .NET 和 cURL 命令將 EML 檔案轉換為 MSG。儘管如此,Cloud SDKs 是根據 MIT 許可證開發的,您可以透過 GitHub 下載完整的原始程式碼。

我們也提供了雲端 API 的 swagger 視圖,以便您可以在 Web 瀏覽器中測試 API。此外,如果您遇到任何問題或有任何進一步的疑問,請隨時透過免費客戶支援論壇與我們聯繫。

相關文章