
EML là phần mở rộng tệp cho tin nhắn email được lưu vào tệp theo định dạng chuẩn MIME RFC 822 được Outlook, Outlook Express, Windows Live Mail hoặc Thunderbird hỗ trợ. Hơn nữa, định dạng tệp EML là định dạng tệp MIME dạng văn bản thuần túy (rfc822) để lưu trữ email. Ở đầu bên kia, MSG là định dạng nhị phân tệp hợp chất dựa trên MAPI Outlook của Microsoft. Ngoài ra, định dạng tệp MSG Mục Outlook (. msg) là cú pháp để lưu trữ một đối tượng Tin nhắn duy nhất, chẳng hạn như email, cuộc hẹn, liên hệ, tác vụ, v.v., trong một tệp.
Vì vậy, trong bài viết này, chúng ta sẽ thảo luận về các bước chuyển đổi tệp EML sang định dạng MSG theo chương trình bằng REST API.
API xử lý email
Aspose.Email Cloud là một API dựa trên REST cung cấp khả năng tạo, thao tác và hiển thị các định dạng email phổ biến (Outlook EML, MSG, tệp iCalendar và VCard) sang các định dạng tệp được hỗ trợ khác. Bạn có khả năng làm việc với Tiêu đề, Địa chỉ người gửi, Nội dung có trong tin nhắn hoặc xử lý các tệp đính kèm của email như tệp, ảnh, tài liệu, v.v. Đồng thời, triển khai xử lý thẻ liên hệ (Vận hành VCard) hoặc xử lý Lịch thông qua Hỗ trợ iCalendar trong các ứng dụng của bạn.
Để tạo điều kiện thuận lợi cho các nhà phát triển, chúng tôi đã tạo ra các wrapper xung quanh Cloud API, để bạn có được tất cả các tính năng ngay trong IDE yêu thích của mình. Trước khi tiếp tục, chúng tôi khuyên bạn nên truy cập liên kết sau để tìm hiểu thêm về cách cài đặt Aspose.Cloud SDK.
Chuyển đổi EML sang MSG trong C#
Vui lòng làm theo các bước dưới đây để thực hiện yêu cầu của bạn:
- Đầu tiên, 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 và tải lên phương thức UploadFile(…) lưu trữ đám mây
- Thứ ba, tạo một phiên bản của EmailGetAsFileRequest truyền tệp đầu vào và định dạng kết quả
- Bây giờ hãy sử dụng API EmailGetAsFile để chuyển đổi tệp EML có sẵn trong bộ nhớ đám mây sang định dạng MSG
- 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 MSG kết quả
string resultantFile = "converted.msg";
// định dạng của tập tin kết quả
string toFormat = "Msg";
try
{
// đọc sourceec EML để truyền phát đối tượng
using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
{
// tải tệp EML nguồn lên bộ nhớ đám mây
emailApi.CloudStorage.File.UploadFile(new Aspose.Email.Cloud.Sdk.Model.UploadFileRequest(name, file));
// tạo phiên bản EmailGetAsFileRequest bằng cách truyền tệp đầu vào và định dạng kết quả
var convertRequest = new EmailGetAsFileRequest(name, toFormat);
// Thực hiện thao tác chuyển đổi
var response = emailApi.Email.GetAsFile(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 MSG !");
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();
}
Các tệp mẫu được sử dụng trong ví dụ trên có thể được tải xuống từ sample.eml và converted.msg.
Trong trường hợp bạn cần tải tệp từ ổ đĩa cục bộ và thực hiện chuyển đổi, vui lòng thử sử dụng API EmailConvert.
EML sang MSG sử dụng lệnh 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 trên bảng điều khiển Aspose.Cloud. Để biết thêm chi tiết, vui lòng truy cập Cách lấy mã thông báo JWT bằng ID khách hàng và khóa bí mật của khách hàng.
Sau khi có mã thông báo JWT, vui lòng sử dụng lệnh sau để chuyển đổi tệp EML có sẵn trong Cloud storage sang định dạng MSG và lưu đầu ra trên ổ đĩa cục bộ. Đối với mục đích chuyển đổi, API EmailGetAsFile được sử dụng.
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
Phần kết luận
Trong bài viết này, chúng tôi đã thảo luận về khả năng của Aspose.Email Cloud để xử lý các định dạng email phổ biến. Cụ thể, chúng tôi đã thảo luận về việc chuyển đổi tệp EML sang MSG bằng lệnh C# .NET và cURL. Tuy nhiên, Cloud SDK được phát triển theo giấy phép MIT và bạn có thể tải xuống 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í.