Chuyển đổi email thành HTML trong C# .NET

HTML là một định dạng được sử dụng rộng rãi và dễ tiếp cận có thể được xem trên nhiều nền tảng, trình duyệt web, bao gồm máy tính để bàn và thiết bị di động. Ngược lại, các tệp EML và MSG có thể yêu cầu phần mềm hoặc ứng dụng email cụ thể để được xem, điều này có thể làm cho chúng trở nên khó truy cập và xem theo thời gian. Vì vậy, việc chuyển đổi tệp MSG hoặc EML thành HTML giúp chúng dễ dàng xem hơn, đặc biệt đối với người nhận có thể không có phần mềm hoặc ứng dụng email tương thích.

Ngoài ra, các tệp HTML dễ dàng lưu trữ và giữ ở định dạng có thể tìm kiếm, đã được lập chỉ mục.

Bài viết này trình bày một thuật toán để nhanh chóng và dễ dàng chuyển đổi tệp MSG hoặc EML thành định dạng HTML bằng C#, không phụ thuộc vào mục đích cơ bản. Phương pháp đáng tin cậy của chúng tôi đảm bảo rằng nội dung của email, bao gồm hình ảnh nhúng, được bảo toàn hoàn toàn mà không có bất kỳ sự mất mát nào. Điều này đảm bảo rằng tính toàn vẹn của email được duy trì trong suốt quá trình chuyển đổi.

Bài viết đề cập đến các chủ đề sau:

C# API để chuyển đổi tệp EML/MSG thành HTML

Để chuyển đổi các tệp EML/MSG thành HTML, chúng tôi sẽ sử dụng Aspose.Email for .NET. Đây là một API xử lý email cho phép bạn thao tác với email và làm việc với các định dạng tệp của các ứng dụng email phổ biến như Thunderbird, Outlook, v.v. Bạn có thể tải xuống DLL của API hoặc cài đặt nó từ NuGet bằng cách sử dụng lệnh sau:

PM> Install-Package Aspose.Email

Chuyển đổi tệp EML/MSG thành HTML và lưu hình ảnh riêng biệt

Một tệp MSG điển hình có giao diện như sau:

Giao diện tệp MSG

Với API của chúng tôi, bạn có thể đặt bất kỳ thư mục nào trên thiết bị của bạn và lưu tệp HTML mục tiêu với hình ảnh trong một thư mục riêng biệt:

Giao diện tệp HTML

Sử dụng ví dụ mã sau để chuyển đổi một tin nhắn email ở định dạng MSG hoặc EML thành một tệp HTML với hình ảnh, được lưu vào một thư mục mục tiêu. Mã thực hiện các bước sau:

  1. Đầu tiên, xác định các đường dẫn nguồn và mục tiêu cho tệp MSG/EML nguồn và tệp HTML, tương ứng, cũng như thư mục mục tiêu cho các tài nguyên.
  2. Tải tệp MSG hoặc EML bằng cách sử dụng phương thức MailMessage.Load.
  3. Tạo đối tượng HtmlSaveOptions và thiết lập thuộc tính ResourceRenderingMode thành SaveToFile.
  4. Định nghĩa một delegate cho sự kiện SaveResourceHandler của HtmlSaveOptions.
  5. Tạo một thư mục mục tiêu cho các tài nguyên bên trong delegate nếu nó chưa tồn tại.
  6. Lưu mỗi tài nguyên vào một tệp với tên tệp bên trong delegate dựa trên loại nội dung của tài nguyên.
  7. Gọi phương thức Save của thể hiện MailMessage, truyền vào tên tệp HTML mục tiêu và thể hiện HtmlSaveOptions để lưu email ở định dạng HTML.

Chuyển đổi tệp EML/MSG thành HTML và lưu hình ảnh bên trong HTML

Đôi khi bạn có thể muốn chuyển đổi tệp EML/MSG thành HTML mà giữ lại hình ảnh nhúng bên trong HTML.

Hình ảnh bên trong HTML trong trình chỉnh sửa văn bản

Đoạn mã sau đây minh họa cách chuyển đổi tệp MSG hoặc EML thành định dạng HTML trong C# và lưu hình ảnh bên trong HTML. Mã thực hiện các bước sau:

  1. Xác định các đường dẫn nguồn và mục tiêu cho tệp email và đầu ra HTML.
  2. Tải tệp MSG hoặc EML bằng cách sử dụng phương thức MailMessage.Load.
  3. Tạo một thể hiện mới của lớp HtmlSaveOptions, cho phép bạn cấu hình cách email được lưu dưới dạng HTML.
  4. Cấu hình thể hiện HtmlSaveOptions để nhúng các tài nguyên, bao gồm hình ảnh, trực tiếp vào HTML.
  5. Gọi phương thức Save của thể hiện MailMessage, truyền vào tên tệp HTML mục tiêu và thể hiện HtmlSaveOptions để lưu email ở định dạng HTML.

Lưu HTML với tiêu đề

Như một biến thể tùy chọn, bạn có thể lưu một HTML với một tiêu đề. Đoạn mã sau đây minh họa cách lưu một HTML với tiêu đề trong C#:

Kết quả là, một tiêu đề văn bản sẽ được thêm vào HTML mục tiêu:

Tiêu đề văn bản

Kết luận

Tóm lại, từ bài viết này bạn đã học về sự tiện lợi của định dạng HTML cho việc lưu trữ và quản lý tệp của bạn và cách thực hiện chuyển đổi từ EML hoặc MSG trong C# bằng cách sử dụng thư viện Aspose.Email for .NET. Bạn có thể thấy quy trình chuyển đổi nhanh chóng và dễ dàng chỉ với vài dòng mã. Nếu bạn có bất kỳ câu hỏi nào, hãy thoải mái viết cho diễn đàn hỗ trợ miễn phí của chúng tôi free support forum. Bạn cũng có thể tìm hiểu thêm về Aspose.Email for .NET, các tính năng và tiện ích của nó từ tài liệu.

Xem thêm