1. Sản Phẩm
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS cho .NET

Đọc, tạo và xử lý các tệp Outlook MSG, container CFB và tin nhắn EML từ .NET — miễn phí và mã nguồn mở, không phụ thuộc Microsoft Outlook.

Thư viện .NET mã nguồn mở cho các tệp MSG, CFB và EML

Aspose.Email FOSS cho .NET là một thư viện C# được cấp phép MIT, không phụ thuộc, dùng để làm việc với các tệp .msg của Microsoft Outlook, các container Compound File Binary (CFB), và các tin nhắn EML. Thêm một gói NuGet duy nhất và ngay lập tức bắt đầu đọc, tạo và xử lý các tin nhắn email mà không cần cài đặt Microsoft Outlook hoặc bất kỳ môi trường chạy độc quyền nào.

Thư viện cung cấp hai cấp độ truy cập. Ở mức thấp, CfbReaderCfbWriter cho phép kiểm soát đầy đủ các container nhị phân CFB — duyệt các mục thư mục, đọc và ghi các nút lưu trữ và dữ liệu luồng, và kiểm tra bố cục sector thô. MsgReaderMsgWriter xử lý định dạng MSG trên CFB, hiển thị các luồng thuộc tính MAPI, bảng người nhận và các sub-storage đính kèm. Ở mức cao, MapiMessage cho phép bạn tạo tin nhắn mới từ đầu, đọc tiêu đề, nội dung, người gửi và người nhận, quản lý tệp đính kèm, và chuyển đổi giữa định dạng MSG và EML thông qua triển khai MIME tích hợp.

Thư viện nhắm mục tiêu .NET 8.0 trở lên và không có phụ thuộc gốc, khiến nó phù hợp cho Windows, Linux, macOS, các container Docker và các hàm không máy chủ. Để biết thêm tính năng và hỗ trợ thương mại, xem Aspose.Email for .NET.

Đọc và ghi Container CFB

  • Mở tệp CFB: Tải các container CFB hiện có từ đường dẫn tệp, luồng hoặc mảng byte thông qua CfbReader.FromFile(), CfbReader.FromStream() hoặc new CfbReader(data).
  • Duyệt cây thư mục: Lặp lại các storage, stream và child bằng cách sử dụng IterStorages(), IterStreams(), IterChildren()IterTree().
  • Resolve paths: Điều hướng các cấp lưu trữ lồng nhau với ResolvePath(names) để xác định một luồng cụ thể bằng chuỗi tên.
  • Viết các container CFB: Xây dựng tài liệu CFB một cách lập trình với CfbDocument và tuần tự hoá thành byte hoặc tệp qua CfbWriter.ToBytes() hoặc CfbWriter.WriteFile().
  • Thêm kho lưu trữ và luồng: Gắn các nút CfbStorageCfbStream vào bất kỳ nút lưu trữ nào trước khi tuần tự hoá.

Nơi Sử Dụng Truy Cập CFB

  • Kiểm tra tệp MSG: CFB là định dạng container cho các tệp Outlook .msg — truy cập CFB trực tiếp cho phép kiểm tra pháp y và sửa chữa.
  • Định dạng nhị phân tùy chỉnh: Bất kỳ ứng dụng kế thừa nào sử dụng CFB để lưu trữ dữ liệu có thể được đọc hoặc ghi mà không cần phụ thuộc vào COM.
  • Data recovery: Duyệt toàn bộ cây thư mục và trích xuất các byte luồng thô từ các tệp CFB bị hỏng hoặc không tiêu chuẩn.
  • Kiểm thử vòng quay nhị phân: Tuần tự hoá một tài liệu thành các byte và tải lại để xác minh việc tuần tự hoá không mất mát trong các bài kiểm tra tự động.

Đọc và ghi tệp MSG

  • Read MSG files: Mở các tệp Outlook MSG bằng MsgReader.FromFile() hoặc MsgReader.FromStream() và truy cập các luồng thuộc tính MAPI, bản ghi người nhận và các sub-storage đính kèm.
  • Viết tệp MSG: Tạo tệp MSG từ MsgDocument với MsgWriter.ToBytes() hoặc MsgWriter.WriteFile().
  • Truy cập MAPI cấp thấp: Đọc các luồng thuộc tính cấp cao nhất, các thuộc tính có tên và dữ liệu tệp đính kèm qua MsgStorage, MsgStreamMsgStorage.FindStream().
  • Điều hướng lưu trữ MSG: Sử dụng MsgStorage.FindStream()MsgStorage.FindStorage() để định vị các mục phụ có tên.

Nơi Xử Lý MSG Được Sử Dụng

  • Email archival pipelines: Đọc hàng loạt các tệp .msg từ các thư mục lưu trữ và trích xuất siêu dữ liệu hoặc tệp đính kèm.
  • Công cụ di chuyển: Chuyển đổi các bộ sưu tập MSG sang các định dạng tiêu chuẩn để nhập vào các hệ thống không phải Outlook.
  • Khám phá pháp lý: Phân tích luồng thuộc tính MAPI thô để trích xuất tất cả các trường tin nhắn bao gồm các thuộc tính không chuẩn.
  • Giao báo cáo tự động: Tạo các tệp .msg một cách lập trình và chuyển chúng tới các hệ thống thư dựa trên Outlook.

API Tin Nhắn Cấp Cao

  • Tạo tin nhắn: Xây dựng một email hoàn chỉnh với MapiMessage.Create(subject, body), thiết lập SenderName, SenderEmailAddress, và HtmlBody.
  • Thêm người nhận: Đính kèm người nhận To, CcBcc qua AddRecipient() với địa chỉ email và tên hiển thị.
  • Quản lý tệp đính kèm: Thêm tệp và luồng đính kèm bằng AddAttachment() hoặc tạo các đối tượng MapiAttachment trực tiếp với Filename, MimeType, ContentIdData.
  • Lưu và tải lại: Serialize với message.Save() hoặc message.Save(stream) và tải lại với MapiMessage.FromFile() hoặc MapiMessage.FromStream().

Nơi API Cấp Cao Được Sử Dụng

  • Tự động tạo email: Tạo hàng ngàn tệp MSG cá nhân hoá từ các bản ghi dữ liệu trong các công việc batch.
  • Tạo fixture kiểm thử: Xây dựng các tệp MSG đã được kiểm chứng với nội dung dự đoán được cho các bộ kiểm thử tích hợp.
  • Trích xuất tệp đính kèm: Tải tệp MSG, lặp lại message.Attachments, và lưu mỗi attachment.Data vào đĩa.
  • Kiểm tra thuộc tính: Truy cập message.Subject, message.Body, message.SenderEmailAddressmessage.Recipients mà không cần COM automation.

Chuyển Đổi EML và MIME

  • Load EML into MapiMessage: Phân tích một tệp .eml tiêu chuẩn (RFC 5322 / MIME) thành một đối tượng MapiMessage đầy đủ thông qua MapiMessage.LoadFromEml(stream).
  • Save MapiMessage as EML: Chuyển đổi một MapiMessage trở lại định dạng MIME với message.SaveToEml() hoặc message.SaveToEml(stream).
  • Độ trung thực vòng chuyền: Chủ đề, nội dung, HTML nội dung, người gửi, người nhận, và tệp đính kèm đều được bảo toàn qua các vòng chuyền EML → MSG → EML.
  • Không có bộ phân tích MIME bên ngoài: Việc phân tích EML được triển khai nguyên bản trong thư viện — không cần phụ thuộc vào System.Net.Mail.

Nơi Chuyển Đổi EML Được Sử Dụng

  • Kết nối định dạng: Nhận email dưới dạng EML từ máy chủ thư và chuyển đổi sang MSG để lưu trữ tương thích với Outlook.
  • Tuân thủ tiêu chuẩn: Chuyển đổi các tệp MSG độc quyền sang MIME tiêu chuẩn để gửi đến bất kỳ hệ thống truyền thư nào.
  • Chuẩn hoá lưu trữ: Chuẩn hoá một kho lưu trữ hỗn hợp của các tệp .eml.msg thành một định dạng duy nhất.
  • Testing workflows: Tạo các fixture .eml trong các bài kiểm tra và xác minh chúng tồn tại qua vòng quay MSG mà không mất dữ liệu.

Đọc Tiêu Đề Từ Tệp MSG

Mở tệp Outlook MSG từ một luồng và in tiêu đề — không cần Microsoft Outlook.

using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);

Tạo và Lưu Tin Nhắn MSG

Tạo một email hoàn chỉnh với người gửi, người nhận và tệp đính kèm, sau đó ghi nó vào tệp MSG.

using System.IO;
using Aspose.Email.Foss.Msg;
var message = MapiMessage.Create("Hello", "Body");
message.SenderName = "Alice";
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
using var attachmentStream = new MemoryStream("abc"u8.ToArray());
message.AddAttachment("note.txt", attachmentStream, "text/plain");
using var output = File.Create("hello.msg");
message.Save(output);

Chuyển Đổi EML Sang MSG

Tải một tệp .eml tiêu chuẩn và lưu nó dưới dạng tệp Outlook .msg bằng cách sử dụng bộ phân tích MIME tích hợp.

using System.IO;
using Aspose.Email.Foss.Msg;
using var input = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(input);
using var msgOutput = File.Create("message.msg");
message.Save(msgOutput);
using var emlOutput = File.Create("roundtrip.eml");
message.SaveToEml(emlOutput);
  

Tài Nguyên Hỗ Trợ và Học Tập

 Tiếng Việt