Giới thiệu
Aspose.Email FOSS for .NET là một thư viện C# miễn phí, mã nguồn mở cho phép bạn làm việc với các tệp Outlook MSG, các container Compound File Binary (CFB) và các tin nhắn EML trực tiếp trong ứng dụng .NET của bạn — không cần Microsoft Outlook, không cần COM interop và không yêu cầu thư viện gốc. Phân phối nó dưới dạng một gói NuGet duy nhất và nó chạy giống hệt trên Windows, Linux, macOS, các container Docker và các hàm serverless.
Thư viện giải quyết một vấn đề lặp lại trong công việc doanh nghiệp và tích hợp: các tệp Outlook .msg được tạo ra bởi hàng triệu người dùng doanh nghiệp, nhưng việc phân tích chúng mà không có Outlook trước đây đòi hỏi tự động hoá COM hoặc các thư viện thương mại đắt tiền. Aspose.Email FOSS cho .NET cung cấp hỗ trợ đọc/ghi đầy đủ cho MSG, container nhị phân CFB nền tảng, và định dạng EML/MIME — tất cả đều dưới giấy phép MIT mà không có hạn chế sử dụng.
Dù bạn đang xây dựng một quy trình lưu trữ email, một công cụ di chuyển, một bộ trích xuất tệp đính kèm,
hoặc một trình tạo MSG tự động, thư viện này cung cấp cho bạn quyền truy cập trực tiếp, cấp thấp tới từng byte của
định dạng email cùng với một API MapiMessage cấp cao cho phép bạn bắt đầu chỉ trong vài phút.
Tính năng chính
Đọc tệp Outlook MSG
Mở bất kỳ tệp .msg nào từ đường dẫn hoặc luồng bằng MsgReader.FromFile() hoặc MsgReader.FromStream().
Truy cập luồng thuộc tính MAPI đầy đủ, các bản ghi người nhận và các sub-storage đính kèm tại
cấp độ byte thô thông qua MsgStorage và MsgStream.
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 tệp MSG từ đầu
Xây dựng một email hoàn chỉnh bằng cách lập trình sử dụng MapiMessage.Create(). Đặt tiêu đề, văn bản thuần
body, HTML body, tên người gửi, địa chỉ email người gửi, thời gian giao hàng, và ID tin nhắn internet, sau đó
thêm người nhận bằng AddRecipient() và tệp đính kèm bằng AddAttachment(). Chuỗi hoá bằng
message.Save().
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 (và Ngược lại)
Tải một tệp RFC 5322 .eml tiêu chuẩn vào một MapiMessage với MapiMessage.LoadFromEml(),
sau đó lưu nó dưới dạng tệp Outlook .msg — hoặc thực hiện ngược lại bằng MapiMessage.SaveToEml().
Trình phân tích MIME tích hợp sẵn bảo toàn tiêu đề, nội dung, nội dung HTML, người gửi, người nhận và tệp đính kèm
trong các vòng quay đầy đủ EML ↔ MSG.
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);
Truy cập CFB Container cấp thấp
Các tệp Outlook MSG được xây dựng trên định dạng Compound File Binary (CFB) — một container nhị phân phân cấp tương tự như hệ thống tệp. CfbReader hiển thị toàn bộ cây thư mục: lặp qua các storage và stream bằng IterStorages(), IterStreams() và IterChildren(), điều hướng đến các mục cụ thể bằng đường dẫn với ResolvePath(), và đọc byte raw của stream bằng GetStreamData().
CfbWriter cho phép bạn tạo và tuần tự hoá một tài liệu CFB từ đầu. Tạo một CfbDocument, đính kèm các nút CfbStorage và CfbStream, và gọi CfbWriter.ToBytes() hoặc CfbWriter.WriteFile() để tuần tự hoá.
Truy cập Thuộc tính và Tệp đính kèm MAPI
Lớp MapiPropertyCollection cung cấp quyền truy cập thuộc tính MAPI có kiểu cho bất kỳ đối tượng MSG hoặc lưu trữ nào: sử dụng Get(), Set(), Add() và Remove() với các giá trị enum chuẩn CommonMessagePropertyId hoặc PropertyTypeCode. Truy cập siêu dữ liệu tệp đính kèm và dữ liệu nhị phân thông qua các thuộc tính MapiAttachment: Filename, MimeType, ContentId và Data.
Bắt đầu nhanh
Cài đặt gói:
dotnet add package Aspose.Email.Foss
Đọc tiêu đề từ tệp MSG:
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
foreach (var recipient in message.Recipients)
Console.WriteLine($"To: {recipient.EmailAddress}");
foreach (var attachment in message.Attachments)
Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");
Định dạng được hỗ trợ
| Định dạng | Phần mở rộng | Đọc | Ghi |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Mã nguồn mở & Giấy phép
Aspose.Email FOSS for .NET được phát hành dưới giấy phép MIT. Bạn có thể sử dụng nó tự do trong các dự án cá nhân, thương mại và mã nguồn mở mà không có bất kỳ hạn chế nào. Mã nguồn có sẵn tại github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.