
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 bởi nhiều nền tảng, trình duyệt web, bao gồm cả 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 khách hàng email cụ thể để xem, điều này có thể làm cho việc truy cập và xem chúng trở nên khó khăn hơn theo thời gian. Vì vậy, việc chuyển đổi các tệp MSG hoặc EML sang HTML giúp dễ dàng xem hơn, đặc biệt cho những người nhận có thể không có phần mềm hoặc khách hàng email tương thích.
Ngoài ra, các tệp HTML dễ lưu trữ hơn và vẫn ở đị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 để chuyển đổi nhanh chóng và dễ dàng tệp MSG hoặc EML sang định dạng HTML bằng Java, bất kể 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 cả hình ảnh nhúng, được bảo toàn hoàn toàn mà không mất mát. Đ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:
- Java API để chuyển đổi tệp EML/MSG sang HTML
- Chuyển đổi tệp EML/MSG sang HTML lưu hình ảnh riêng biệt
- Chuyển đổi tệp EML/MSG sang HTML lưu hình ảnh bên trong HTML
- Lưu HTML với tiêu đề
Java API để chuyển đổi tệp EML/MSG sang HTML
Để thực hiện nhiệm vụ chuyển đổi tệp EML/MSG sang HTML, chúng tôi sẽ sử dụng Aspose.Email for Java. API xử lý email này cho phép người dùng quản lý email và làm việc với các định dạng tệp của các khách hàng email phổ biến như Thunderbird, Outlook và những người khác. Để có được API, bạn có thể tải xuống hoặc cài đặt nó từ kho lưu trữ của chúng tôi.
Chuyển đổi tệp EML/MSG sang HTML lưu hình ảnh riêng biệt
Một tệp MSG điển hình có giao diện như sau:

Với API của chúng tôi, bạn có thể thiết lập 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:

Đoạn mã dưới đây minh họa quá trình chuyển đổi một tin nhắn email ở định dạng MSG hoặc EML sang 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:
- Đầ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 tài nguyên.
- Tải tệp MSG hoặc EML bằng cách sử dụng phương thức MailMessage.load.
- Tạo đối tượng HtmlSaveOptions và thiết lập thuộc tính ResourceRenderingMode thành SaveToFile.
- Định nghĩa một phương thức
invoke
cho SaveResourceHandler của HtmlSaveOptions. - Tạo một thư mục mục tiêu cho các tài nguyên bên trong phương thức
invoke
nếu nó chưa tồn tại. - Lưu mỗi tài nguyên vào một tệp với tên tệp bên trong phương thức
invoke
dựa trên loại nội dung của tài nguyên. - 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.
// MSG or EML filename | |
String msgFileName = pathCombine(sourcePath, "A Day in the Park.msg"); | |
// target HTML | |
String htmlFileName = pathCombine(targetPath, "A Day in the Park.html"); | |
// target directory to save images | |
String resourceDir = pathCombine(targetPath, "A Day in the Park"); | |
// Load MSG or EML | |
MailMessage msg = MailMessage.load(msgFileName); | |
// Create HTML save options | |
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions(); | |
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.SaveToFile); | |
htmlSaveOptions.setSaveResourceHandler(new SaveResourceHandler() { | |
@Override | |
public void invoke(AttachmentBase attachment, String[] resourceFileName) { | |
resourceFileName[0] = pathCombine(resourceDir, attachment.getContentType().getName()); | |
attachment.save(resourceFileName[0]); | |
} | |
}); | |
msg.save(htmlFileName, htmlSaveOptions); |
Chuyển đổi tệp EML/MSG sang HTML lưu hình ảnh bên trong HTML
Đôi khi bạn có thể muốn chuyển đổi tệp EML/MSG sang HTML với các hình ảnh nhúng bên trong HTML.

Đoạn mã dưới đây minh họa cách chuyển đổi một tệp MSG hoặc EML sang định dạng HTML trong Java và lưu các hình ảnh bên trong HTML. Mã thực hiện các bước sau:
- Định nghĩa các đường dẫn nguồn và mục tiêu cho tệp email và đầu ra HTML.
- Tải tệp MSG hoặc EML bằng cách sử dụng phương thức MailMessage.load.
- 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 lưu email dưới dạng HTML.
- Cấu hình thể hiện HtmlSaveOptions để nhúng các tài nguyên, bao gồm cả hình ảnh, trực tiếp vào HTML.
- 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.
// MSG or EML filename | |
String msgFileName = pathCombine(sourcePath, "A Day in the Park.msg"); | |
// target HTML | |
String htmlFileName = pathCombine(targetPath, "A Day in the Park.html"); | |
// Load MSG or EML | |
MailMessage msg = MailMessage.load(msgFileName); | |
// Create HTML save options | |
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions(); | |
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.EmbedIntoHtml); | |
msg.save(htmlFileName, htmlSaveOptions); |
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 tiêu đề. Đoạn mã sau đây minh họa cách lưu một HTML với tiêu đề trong Java:
// Create HTML save options | |
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions(); | |
htmlSaveOptions.setResourceRenderingMode(ResourceRenderingMode.EmbedIntoHtml); | |
htmlSaveOptions.setHtmlFormatOptions(HtmlFormatOptions.WriteHeader); |
Kết quả là, một tiêu đề văn bản sẽ được thêm vào tệp HTML mục tiêu:

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