
Microsoft Outlook và các ứng dụng email phổ biến khác sử dụng EML(tiêu chuẩn MIME RFC 822) làm định dạng chuẩn. EML là viết tắt của thư điện tử hoặc email. Tương tự như vậy, đây là phần mở rộng tệp cho tin nhắn email được lưu vào tệp trong giao thức Định dạng tin nhắn Internet dành cho tin nhắn email. Các tệp EML thường chứa văn bản ASCII thuần túy cho nội dung tin nhắn chính, tiêu đề và siêu liên kết cũng như tệp đính kèm. Tuy nhiên, có một mối đe dọa liên quan đến định dạng EML là nó có thể là email lừa đảo và tệp đính kèm có thể: Lây nhiễm phần mềm độc hại vào máy của bạn nếu bạn mở tệp đính kèm.
Hơn nữa, nếu chúng ta lưu một bản sao ngoại tuyến của các tệp này, phần mềm độc hại có thể dễ dàng ảnh hưởng đến chúng và dữ liệu có thể bị mất. Ngoài ra, để mở các tệp EML, chúng ta cần một ứng dụng được hỗ trợ (Microsoft Outlook 365, Microsoft Windows Mail, Mozilla Thunderbird, v.v.).Vì vậy, một biện pháp phòng ngừa có thể là chuyển đổi sang định dạng MHT.
API xử lý email miễn phí
Aspose.Email Cloud là API từng đoạt giải thưởng của chúng tôi cung cấp khả năng tạo, thao tác và chuyển đổi các định dạng Email phổ biến sang các định dạng được hỗ trợ khác. Vì vậy, hãy tạo giải pháp quản lý email dựa trên đám mây của riêng bạn hỗ trợ OAuth và gửi tin nhắn email đơn giản hoặc MIME có hoặc không có tệp đính kèm. Truy cập API trên mọi nền tảng bao gồm Windows, Linux, macOS và trong mọi loại ứng dụng tức là Máy tính để bàn, Di động, Web, kết hợp, v.v.
Để sử dụng trực tiếp API trong ngôn ngữ lập trình, vui lòng thử sử dụng Cloud SDK dành riêng cho ngôn ngữ của chúng tôi, đây là một trình bao bọc xung quanh Cloud SDK. Trong bài viết này, chúng tôi sẽ tập trung vào việc chuyển đổi các tệp EML sang định dạng MHT bằng Aspose.Email Cloud SDK cho .NET. Để sử dụng SDK, bạn cần có một trong các khung .NET được hỗ trợ (hoặc tương thích với các khung được hỗ trợ):
- .NETFramework 2.0
- .NETFramework 4.5.2
- .NETStandard 2.0
- Android 6.0
- Xamarin.iOS 1.0
- Xamarin.Mac 2.0
Cài đặt
Để sử dụng Cloud SDK, bước đầu tiên là cài đặt. Bạn có thể tải xuống tại NuGet và GitHub. Vui lòng thực hiện lệnh sau trong cửa sổ terminal để thực hiện cài đặt cho NuGet:
nuget install Aspose.Email-Cloud
Khi sử dụng .NET CLI:
dotnet add package Aspose.Email-Cloud
Nếu bạn đang sử dụng Visual Studio, thì gói cũng có thể được cài đặt bằng Package Manager Console. Vui lòng thực hiện lệnh sau:
PM> Install-Package Aspose.Email-Cloud

Image 1:- Aspose.Words NuGet package installed.
Trình quản lý gói NuGet – Visual Studio
Một cách tiếp cận dễ dàng nhất là cài đặt SDK thông qua NuGet Package Manager trong Visual Studio IDE.
- Mở Solution Explorer.
- Mở rộng dự án và nhấp chuột phải vào thư mục Packages trong giải pháp của bạn.
- Chọn tùy chọn Quản lý các gói NuGet…
- Nhấp vào tab Browse và tìm kiếm “Aspose.Email-Cloud“
- Nhấp vào gói Aspose.Email-Cloud, chọn phiên bản phù hợp ở tab bên phải và nhấp vào nút Thêm gói

Image 2:- Aspose.Words Package in NuGet Package Manager.
Đăng ký tài khoản đám mây
API của chúng tôi chỉ có thể truy cập được đối với những người được ủy quyền vì dữ liệu được lưu trữ trong bộ nhớ đám mây có thể truy cập được thông qua API đám mây. Đăng ký miễn phí và không yêu cầu thông tin thanh toán trước. Thực hiện tới 150 thao tác xử lý tài liệu miễn phí. Vì vậy, khi bạn hài lòng với khả năng của API, bạn có thể cân nhắc lựa chọn đăng ký giấy phép có thể thấp tới 0,005 đô la/lệnh gọi API. Để biết thêm chi tiết, vui lòng truy cập Giá.
Bây giờ hãy tiến hành tạo tài khoản bằng cách truy cập bảng điều khiển Aspose.Cloud. Không cần thẻ tín dụng hoặc thông tin thanh toán khác. Nếu bạn có tài khoản GitHub hoặc Google, chỉ cần Đăng ký hoặc nhấp vào nút tạo tài khoản mới và cung cấp thông tin bắt buộc. Bây giờ hãy đăng nhập vào bảng điều khiển bằng thông tin xác thực và mở rộng phần Ứng dụng từ bảng điều khiển và cuộn xuống phần Thông tin xác thực của khách hàng để xem thông tin chi tiết về ID khách hàng và Bí mật khách hàng.

Hình ảnh 3: - Thông tin xác thực của khách hàng tại bảng điều khiển Aspose.Cloud.
EML sang MHT trong C#
Vui lòng làm theo các bước dưới đây để chuyển đổi tệp EML sang định dạng MHT bằng C# .NET.
- Bước đầu tiên là tạo một đối tượng của lớp EmailCloud bằng cách truyền thông tin chi tiết ClientID và Client Secret làm đối số
- Thứ hai, đọc tệp email nguồn vào phiên bản File.OpenRead
- Thứ ba, tạo một phiên bản của EmailConvertRequest trong khi truyền định dạng tệp đầu vào, định dạng tệp kết quả và đối tượng luồng giữ tệp EML đầu vào
- Bây giờ hãy gọi phương thức Email.Convert(…) để bắt đầu hoạt động chuyển đổi
- Cuối cùng, gọi phương thức tùy chỉnh để lưu tệp kết quả vào ổ đĩa cục bộ bằng cách sử dụng phiên bản File.Create
// Để biết ví dụ đầy đủ và các tập tin dữ liệu, vui lòng truy cập
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet
// Nhận thông tin xác thực của khách hàng từ https://dashboard.aspose.cloud/
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";
// tạo một phiên bản của EmailCloud Api
var emailApi = new EmailCloud(clientSecret, clientID);
// tên tệp EML nguồn
string name = "sample.eml";
// tên của tập tin MHT kết quả
string resultantFile = "converted.mht";
// định dạng của tập tin email đầu vào
string fromFormat = "eml";
// định dạng của tập tin kết quả
string toFormat = "Mhtml";
try
{
// đọc sourceec EML để truyền phát đối tượng
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// tạo yêu cầu EmailConvert chuyển đổi định dạng đầu vào, đầu ra và luồng tệp
var convertRequest = new EmailConvertRequest(fromFormat, toFormat, file);
// Thực hiện thao tác chuyển đổi
var response = emailApi.Email.Convert(convertRequest);
// in thông báo thành công nếu chuyển đổi thành công
if (response != null && response.Equals("OK"))
{
// in thông báo thành công
Console.WriteLine("Successfully converted EML to MHT !");
Console.ReadKey();
}
// lưu luồng tập tin kết quả vào ổ đĩa cục bộ
saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
}
}catch (Exception ex)
{
// in ngoại lệ trong bảng điều khiển
Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}
// phương pháp tùy chỉnh để lưu đầu ra vào ổ đĩa hệ thống
static void saveToDisk(Stream responseStream, String resultantFile)
{
var fileStream = File.Create(resultantFile);
responseStream.Seek(0, SeekOrigin.Begin);
responseStream.CopyTo(fileStream);
fileStream.Close();
}

Hình ảnh 4:- Xem trước chuyển đổi EML sang MHT.
Các tập tin được sử dụng trong ví dụ trên có thể được tải xuống từ sample.eml và converted.mht.
Chuyển đổi EML sang MHT bằng cURL
Vì Aspose.Email Cloud được phát triển theo kiến trúc REST, nên có thể dễ dàng truy cập thông qua lệnh cURL. Sử dụng ứng dụng đầu cuối/dấu nhắc lệnh để truy cập API. Vì vậy, bước đầu tiên là tạo mã thông báo truy cập JWT dựa trên thông tin xác thực của khách hàng được chỉ định qua bảng điều khiển Aspose.Cloud. Vui lòng thực hiện lệnh sau để tạo mã thông báo 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"
Bây giờ chúng ta sẽ thảo luận về các bước sử dụng lệnh cURL để chuyển đổi các tệp .eml đã có trong Cloud storage sang định dạng MHTML. Đầu ra được lưu trên hệ thống bằng tham số -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
Trong trường hợp bạn cần thực hiện chuyển đổi tệp .eml để tải lên từ ổ đĩa cục bộ, vui lòng thử sử dụng lệnh cURL sau:
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
Phần kết luận
Trong bài viết này, chúng tôi đã nêu bật các tính năng của Aspose.Email Cloud để xử lý các định dạng email phổ biến. API cho phép bạn tạo các ứng dụng thao tác email để áp dụng cờ đỏ cho các tin nhắn email, áp dụng tệp đính kèm email cũng như tải xuống tệp đính kèm email và nhiều tính năng khác. Chúng tôi đã thảo luận về các bước thực hiện chuyển đổi tệp EML sang MHT bằng C# .NET và các lệnh cURL. Hơn nữa, .NET Cloud SDK được phát triển theo giấy phép MIT. Tải xuống và tùy chỉnh chúng hoàn toàn miễn phí. Mã nguồn đầy đủ có sẵn trên GitHub.
Chúng tôi cũng cung cấp swagger view của Cloud API để bạn có thể kiểm tra API trong trình duyệt web. Ngoài ra, nếu bạn gặp bất kỳ sự cố nào hoặc có bất kỳ thắc mắc nào khác, vui lòng liên hệ với chúng tôi qua diễn đàn hỗ trợ khách hàng miễn phí.
Bài viết liên quan
Chúng tôi cũng khuyên bạn nên truy cập vào các liên kết sau để tìm hiểu thêm về: