Wprowadzenie

Aspose.Email FOSS for .NET to darmowa, otwarto‑źródłowa biblioteka C#, która pozwala pracować z plikami Outlook MSG, kontenerami Compound File Binary (CFB) oraz wiadomościami EML bezpośrednio w aplikacji .NET — bez Microsoft Outlook, bez COM interop i bez wymogu natywnych bibliotek. Rozprowadzaj ją jako pojedynczy pakiet NuGet i działa identycznie na Windows, Linux, macOS, kontenerach Docker oraz funkcjach serverless.

Biblioteka rozwiązuje powtarzający się problem w pracy przedsiębiorstw i integracji: pliki Outlook .msg są tworzone przez miliony użytkowników biznesowych, ale ich parsowanie bez Outlooka historycznie wymagało automatyzacji COM lub drogich komercyjnych bibliotek. Aspose.Email FOSS for .NET zapewnia pełne wsparcie odczytu/zapisu dla MSG, bazowego binarnego kontenera CFB oraz formatu EML/MIME — wszystko na licencji MIT bez ograniczeń użytkowania.

Niezależnie od tego, czy budujesz potok archiwizacji e‑maili, narzędzie migracyjne, ekstraktor załączników, czy automatyczny generator MSG, ta biblioteka zapewnia bezpośredni, niskopoziomowy dostęp do każdego bajtu formatu e‑mail wraz z wysokopoziomowym MapiMessage API, które pozwala rozpocząć pracę w kilka minut.


Kluczowe funkcje

Odczyt plików Outlook MSG

Otwórz dowolny .msg plik z ścieżki lub strumienia przy użyciu MsgReader.FromFile() lub MsgReader.FromStream().
Uzyskaj dostęp do pełnego strumienia właściwości MAPI, rekordów odbiorców oraz podmagazynów załączników na
poziomie surowych bajtów za pomocą MsgStorage i 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);

Utwórz pliki MSG od podstaw

Zbuduj kompletną wiadomość e‑mail programowo przy użyciu MapiMessage.Create(). Ustaw temat, treść w formacie tekstowym, treść HTML, nazwę nadawcy, adres e‑mail nadawcy, czas dostarczenia oraz identyfikator wiadomości internetowej, a następnie dodaj odbiorców przy użyciu AddRecipient() i załączniki przy użyciu AddAttachment(). Serializuj przy użyciu 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);

Konwertuj EML na MSG (i z powrotem)

Wczytaj standardowy plik RFC 5322 .eml do MapiMessage z MapiMessage.LoadFromEml(), a następnie zapisz go jako plik Outlook .msg — lub odwróć proces przy użyciu MapiMessage.SaveToEml(). Wbudowany parser MIME zachowuje temat, treść, treść HTML, nadawcę, odbiorców i załączniki podczas pełnych wymian 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);

Dostęp do kontenera CFB niskiego poziomu

Pliki Outlook MSG są zbudowane w formacie Compound File Binary (CFB) — hierarchicznym binarnym kontenerze podobnym do systemu plików. CfbReader udostępnia pełne drzewo katalogów: iteruj magazyny i strumienie za pomocą IterStorages(), IterStreams() i IterChildren(), nawiguj do konkretnych wpisów po ścieżce za pomocą ResolvePath() oraz odczytuj surowe bajty strumienia za pomocą GetStreamData().

CfbWriter pozwala Ci tworzyć i serializować dokument CFB od podstaw. Utwórz CfbDocument, dołącz węzły CfbStorage i CfbStream, oraz wywołaj CfbWriter.ToBytes() lub CfbWriter.WriteFile(), aby serializować.

Dostęp do właściwości MAPI i załączników

Klasa MapiPropertyCollection zapewnia typowy dostęp do właściwości MAPI dla dowolnego obiektu MSG lub storage: użyj Get(), Set(), Add() i Remove() ze standardowymi wartościami wyliczenia CommonMessagePropertyId lub PropertyTypeCode. Uzyskaj dostęp do metadanych załączników i danych binarnych za pośrednictwem właściwości MapiAttachment: Filename, MimeType, ContentId i Data.


Szybki start

Zainstaluj pakiet:

dotnet add package Aspose.Email.Foss

Odczytaj temat z pliku 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})");

Obsługiwane formaty

FormatRozszerzenieOdczytZapis
Compound File Binary.cfb
Outlook Message.msg
MIME / EML.eml

Open Source i licencjonowanie

Aspose.Email FOSS for .NET jest udostępniony na licencji MIT. Możesz go używać swobodnie w projektach osobistych, komercyjnych i open‑source bez żadnych ograniczeń w użytkowaniu. Kod źródłowy jest dostępny pod adresem github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.


Rozpoczęcie