
Microsoft Outlook 和其他流行的電子郵件用戶端使用 EML(MIME RFC 822 標準)作為標準格式。 EML 是電子郵件或電子郵件的縮寫。類似地,它是電子郵件訊息的檔案副檔名,以電子郵件訊息的 Internet 訊息格式協定儲存到檔案中。 EML 檔案通常包含純 ASCII 文字作為郵件正文、標題和超連結以及附件。然而,EML 格式存在一個威脅,那就是它可能是一個網路釣魚電子郵件,而附件可能會:如果您開啟附件,您的機器就會被惡意軟體感染。
此外,如果我們保存這些檔案的離線副本,惡意軟體很容易影響它們,並導致資料遺失。另外,為了開啟 EML 文件,我們需要一個受支援的應用程式(Microsoft Outlook 365、Microsoft Windows Mail、Mozilla Thunderbird 等)。因此,一種預防措施是將其轉換為 MHT 格式。
免費電子郵件處理 API
Aspose.Email Cloud 是我們屢獲殊榮的 API,提供建立、操作和將流行電子郵件格式轉換為其他支援格式的功能。因此,請建立您自己的支援 OAuth 的基於雲端的電子郵件管理解決方案,並發送帶有或不帶有附件的簡單或 MIME 電子郵件訊息。在任何平台上存取 API,包括 Windows、Linux、macOS 以及任何應用程式類型,即桌面、行動、Web、混合等。
為了直接在程式語言中使用 API,請嘗試使用我們特定於語言的 Cloud SDK,它是 Cloud SDK 的包裝器。在本文中,我們將重點放在使用 Aspose.Email Cloud SDK for .NET 將 EML 檔案轉換為 MHT 格式。為了使用 SDK,您需要擁有一個受支援的(或與受支援的).NET 框架:
- .NET框架 2.0
- .NETFramework 4.5.2
- .NET標準 2.0
- MonoAndroid 6.0
- 更新至 Xamarin.iOS 1.0
- 更新日期:2019-03-27
安裝
為了使用 Cloud SDK,第一步是安裝它。它可以從 NuGet 和 GitHub 下載。請在終端機視窗中執行以下命令來執行NuGet的安裝:
nuget install Aspose.Email-Cloud
使用 .NET CLI 時:
dotnet add package Aspose.Email-Cloud
如果您使用 Visual Studio,那麼也可以使用套件管理器控制台安裝套件。請執行以下命令:
PM> Install-Package Aspose.Email-Cloud

Image 1:- Aspose.Words NuGet package installed.
NuGet 套件管理器 – Visual Studio
另一個最簡單的方法是透過 Visual Studio IDE 中的 NuGet 套件管理器安裝 SDK。
- 開啟解決方案資源管理器。
- 展開專案並右鍵單擊解決方案中的“包”資料夾。
- 選擇管理 NuGet 套件… 選項
- 點擊瀏覽選項卡並蒐索“Aspose.Email-Cloud”
- 點擊 Aspose.Email-Cloud 包,在右側標籤中選擇適當的版本,然後點擊新增包按鈕

Image 2:- Aspose.Words Package in NuGet Package Manager.
雲端帳戶訂閱
我們的 API 僅供授權人員訪問,因為儲存在雲端儲存中的資料可透過雲端 API 存取。訂閱是免費的,無需預付款詳細資訊。執行最多 150 個免費文件處理操作。因此,一旦您對 API 的功能感到滿意,您可以考慮選擇許可證訂閱,價格低至 0.005 美元/API 呼叫。如欲了解更多詳情,請造訪定價。
現在造訪 Aspose.Cloud 儀表板 繼續建立帳戶。無需信用卡或其他付款詳細資訊。如果您有 GitHub 或 Google 帳戶,只需註冊或點擊 建立新帳戶 按鈕並提供所需的資訊。現在使用憑證登入儀表板並從儀表板展開應用程式部分並向下捲動至用戶端憑證部分以查看用戶端 ID 和用戶端金鑰詳細資訊。

圖 3:Aspose.Cloud 儀表板上的客戶端憑證。
使用 C# 將 EML 轉換為 MHT
請依照下列步驟使用 C# .NET 將 EML 檔案轉換為 MHT 格式。
- 第一步是透過將 ClientID 和 Client Secret 詳細資訊作為參數傳遞來建立 EmailCloud 類別的對象
- 其次,將來源電子郵件檔案讀取到 File.OpenRead 實例中
- 第三,建立 EmailConvertRequest 實例,同時傳遞輸入檔案格式、結果檔案格式和儲存輸入 EML 檔案的流對象
- 現在呼叫 Email.Convert(…) 方法來啟動轉換操作
- 最後,使用 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";
// 產生的 MHT 檔的名稱
string resultantFile = "converted.mht";
// 輸入電子郵件檔案的格式
string fromFormat = "eml";
// 結果文件的格式
string toFormat = "Mhtml";
try
{
// 讀取來源 EML 到流對象
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// 建立 EmailConvert 請求實例,傳遞輸入、輸出格式和檔案流
var convertRequest = new EmailConvertRequest(fromFormat, toFormat, file);
// 執行轉換操作
var response = emailApi.Email.Convert(convertRequest);
// 如果轉換成功,則列印成功訊息
if (response != null && response.Equals("OK"))
{
// 列印成功訊息
Console.WriteLine("Successfully converted EML to MHT !");
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();
}

圖 4:- EML 到 MHT 轉換預覽。
上述範例中使用的檔案可以從 sample.eml 和 converted.mht 下載。
使用 cURL 將 EML 轉換為 MHT
由於 Aspose.Email Cloud 是根據 REST 架構開發的,因此可以透過 cURL 命令輕鬆存取。使用終端應用程式/命令提示字元存取 API。因此,第一步是根據 Aspose.Cloud 儀表板 上指定的客戶端憑證產生 JWT 存取權杖。請執行以下命令來產生 JWT 令牌。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4db2f826-bf9c-42e7-8b2a-8cbca2d15553&client_secret=d757548a9f2558c39c2feebdf85b4c44" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
現在我們將討論使用 cURL 指令將雲端儲存中已有的 .eml 檔案轉換為 MHTML 格式的步驟。使用 -o 參數將輸出保存在系統上。
curl -X GET "https://api.aspose.cloud/v4.0/email/as-file?fileName=sample.eml&format=Mhtml" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-o resultant.mht
如果您需要對從本機上傳的 .eml 檔案進行轉換,請嘗試使用以下 cURL 命令:
curl -X PUT "https://api.aspose.cloud/v4.0/email/convert?fromFormat=Eml&toFormat=Mhtml" \
-H "accept: multipart/form-data" \
-H "authorization: Bearer <JWT Token>" \
-H "Content-Type: multipart/form-data" \
-d @sample.eml \
-o converted.mht
結論
在本文中,我們重點介紹了 Aspose.Email Cloud 用於處理流行電子郵件格式的功能。該 API 使您能夠創建電子郵件處理應用程序,以在電子郵件中應用紅旗、應用電子郵件附件以及下載電子郵件附件等等。我們討論如何使用 C# .NET 和 cURL 指令執行 EML 檔案到 MHT 轉換的步驟。此外,.NET Cloud SDK 是根據 MIT 授權開發的。完全免費下載並自訂它們。完整的原始碼可在GitHub上找到。
我們也提供了雲端 API 的 swagger 視圖,以便您可以在 Web 瀏覽器中測試 API。此外,如果您遇到任何問題或有任何進一步的疑問,請隨時透過免費客戶支援論壇與我們聯繫。
相關文章
我們還建議您訪問以下連結以了解更多資訊: