1. Produkty
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS dla .NET

Odczytuj, twórz i przetwarzaj pliki Outlook MSG, kontenery CFB oraz wiadomości EML z .NET — darmowe i open-source, bez zależności od Microsoft Outlook.

Biblioteka .NET typu open-source dla plików MSG, CFB i EML

Aspose.Email FOSS dla .NET to biblioteka C# na licencji MIT, wolna od zależności, służąca do pracy z plikami Microsoft Outlook .msg, kontenerami Compound File Binary (CFB) oraz wiadomościami EML. Dodaj pojedynczy pakiet NuGet i od razu zacznij odczytywać, tworzyć i przetwarzać wiadomości e‑mail bez instalowania Microsoft Outlook ani żadnego własnościowego środowiska uruchomieniowego.

Biblioteka zapewnia dwa poziomy dostępu. Na niskim poziomie CfbReader i CfbWriter dają pełną kontrolę nad binarnymi kontenerami CFB — przeglądanie wpisów katalogu, odczyt i zapis węzłów magazynu oraz danych strumieni, oraz inspekcję surowego układu sektorów. MsgReader i MsgWriter obsługują format MSG na bazie CFB, udostępniając strumienie właściwości MAPI, tabele odbiorców i podmagazyny załączników. Na wysokim poziomie MapiMessage pozwala tworzyć nowe wiadomości od podstaw, odczytywać temat, treść, nadawcę i odbiorców, zarządzać załącznikami oraz konwertować między formatami MSG i EML za pomocą wbudowanej implementacji MIME.

Biblioteka jest przeznaczona dla .NET 8.0 lub nowszego i nie ma zależności natywnych, co czyni ją odpowiednią dla systemów Windows, Linux, macOS, kontenerów Docker oraz funkcji serverless. Aby uzyskać dodatkowe funkcje i wsparcie komercyjne, zobacz Aspose.Email for .NET.

Odczyt i zapis kontenera CFB

  • Otwieranie plików CFB: Ładuj istniejące kontenery CFB z ścieżki pliku, strumienia lub tablicy bajtów za pomocą CfbReader.FromFile(), CfbReader.FromStream() lub new CfbReader(data).
  • Przejdź po drzewie katalogów: Iteruj magazyny, strumienie i elementy potomne, używając IterStorages(), IterStreams(), IterChildren() i IterTree().
  • Rozwiązywanie ścieżek: Nawiguj po zagnieżdżonych hierarchiach przechowywania przy użyciu ResolvePath(names), aby zlokalizować określony strumień według łańcucha nazw.
  • Zapisz kontenery CFB: Twórz dokumenty CFB programowo przy użyciu CfbDocument i serializuj do bajtów lub pliku za pomocą CfbWriter.ToBytes() lub CfbWriter.WriteFile().
  • Dodaj magazyny i strumienie: Dołącz węzły CfbStorage i CfbStream do dowolnego węzła magazynu przed serializacją.

Gdzie używany jest dostęp CFB

  • Inspekcja plików MSG: CFB jest formatem kontenera dla plików Outlook .msg — bezpośredni dostęp do CFB umożliwia forensyczną inspekcję i naprawę.
  • Niestandardowe formaty binarne: Wszelkie starsze aplikacje używające CFB do przechowywania danych mogą być odczytywane lub zapisywane bez zależności od COM.
  • Odzyskiwanie danych: Przejdź pełne drzewo katalogów i wyodrębnij surowe bajty strumienia z uszkodzonych lub niestandardowych plików CFB.
  • Testowanie binarnego cyklu zwrotnego: Serializuj dokument do bajtów i wczytaj go ponownie, aby zweryfikować bezstratną serializację w testach automatycznych.

Odczyt i zapis pliku MSG

  • Read MSG files: Otwórz pliki Outlook MSG za pomocą MsgReader.FromFile() lub MsgReader.FromStream() i uzyskaj dostęp do podstawowych strumieni właściwości MAPI, rekordów odbiorców oraz podmagazynów załączników.
  • Zapisz pliki MSG: Generuj pliki MSG z MsgDocument przy użyciu MsgWriter.ToBytes() lub MsgWriter.WriteFile().
  • Low-level MAPI access: Odczytaj strumienie właściwości najwyższego poziomu, nazwane właściwości i dane załączników za pomocą MsgStorage, MsgStream i MsgStorage.FindStream().
  • Nawigacja w magazynie MSG: Użyj MsgStorage.FindStream() i MsgStorage.FindStorage(), aby zlokalizować nazwane pod‑pozycje.

Gdzie przetwarzanie MSG jest używane

  • Potoki archiwizacji e-maili: Masowo odczytuj pliki .msg z katalogów archiwum i wyodrębniaj metadane lub załączniki.
  • Narzędzia migracyjne: Konwertuj kolekcje MSG do standardowych formatów w celu importu do systemów nie‑Outlook.
  • Odkrycie prawne: Przeanalizuj surowe strumienie właściwości MAPI, aby wyodrębnić wszystkie pola wiadomości, w tym właściwości niestandardowe.
  • Automatyczna dostawa raportów: Twórz pliki .msg programowo i dostarczaj je do systemów pocztowych opartych na Outlooku.

Interfejs API wiadomości wysokiego poziomu

  • Utwórz wiadomości: Zbuduj kompletną wiadomość e-mail z MapiMessage.Create(subject, body), ustaw SenderName, SenderEmailAddress i HtmlBody.
  • Dodaj odbiorców: Dołącz To, Cc i Bcc odbiorców poprzez AddRecipient() z adresem e‑mail i nazwą wyświetlaną.
  • Zarządzaj załącznikami: Dodaj załączniki plików i strumieni za pomocą AddAttachment() lub utwórz obiekty MapiAttachment bezpośrednio przy użyciu Filename, MimeType, ContentId i Data.
  • Zapisz i wczytaj: Serializuj przy użyciu message.Save() lub message.Save(stream) i wczytaj przy użyciu MapiMessage.FromFile() lub MapiMessage.FromStream().

Gdzie używany jest wysokopoziomowy API

  • Automatyczne generowanie e-maili: Generuj tysiące spersonalizowanych plików MSG z rekordów danych w zadaniach wsadowych.
  • Tworzenie fixture testowych: Buduj znane dobre pliki MSG z przewidywalną zawartością dla zestawów testów integracyjnych.
  • Ekstrakcja załączników: Załaduj plik MSG, iteruj message.Attachments i zapisz każdy attachment.Data na dysku.
  • Inspekcja właściwości: Uzyskaj dostęp do message.Subject, message.Body, message.SenderEmailAddress i message.Recipients bez automatyzacji COM.

Konwersja EML i MIME

  • Załaduj EML do MapiMessage: Przeanalizuj standardowy plik .eml (RFC 5322 / MIME) i przekształć go w pełny obiekt MapiMessage za pomocą MapiMessage.LoadFromEml(stream).
  • Save MapiMessage as EML: Serializuj MapiMessage z powrotem do formatu MIME przy użyciu message.SaveToEml() lub message.SaveToEml(stream).
  • Fidelność przy konwersji w obie strony: Temat, treść, HTML treść, nadawca, odbiorcy i załączniki są wszystkie zachowane podczas konwersji EML → MSG → EML.
  • Brak zewnętrznego parsera MIME: Parsowanie EML jest implementowane natywnie w bibliotece — nie wymaga zależności System.Net.Mail.

Gdzie konwersja EML jest używana

  • Format bridging: Odbieraj e-maile w formacie EML z serwerów pocztowych i konwertuj je na MSG do przechowywania zgodnego z Outlookiem.
  • Zgodność ze standardami: Konwertuj własnościowe pliki MSG na standardowy MIME w celu dostarczenia ich do dowolnego transportu poczty.
  • Normalizacja archiwum: Znormalizuj mieszane archiwum plików .eml i .msg do jednego formatu.
  • Testowanie przepływów pracy: Wygeneruj .eml fixture’y w testach i zweryfikuj, że przetrwają one cykl MSG bez utraty danych.

Odczytaj temat z pliku MSG

Otwórz plik Outlook MSG ze strumienia i wydrukuj temat — nie wymaga 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);

Utwórz i zapisz wiadomość MSG

Utwórz kompletną wiadomość e‑mail z nadawcą, odbiorcą i załącznikiem, a następnie zapisz ją do pliku 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);

Konwertuj EML do MSG

Wczytaj standardowy plik .eml i zapisz go jako plik Outlook .msg przy użyciu wbudowanego parsera MIME.

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);
  

Zasoby Wsparcia i Nauki

 Polski