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 rozpocznij odczyt, tworzenie i przetwarzanie 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 — umożliwiają przeglądanie wpisów katalogu, odczyt i zapis węzłów przechowywania oraz danych strumieni, a także 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 oraz podprzechowywania 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ć pomiędzy formatami MSG i EML przy użyciu wbudowanej implementacji MIME.
Biblioteka jest przeznaczona dla .NET 8.0 lub nowszego i nie ma natywnych zależności, 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.
CfbReader.FromFile(), CfbReader.FromStream() lub new CfbReader(data).IterStorages(), IterStreams() , IterChildren() i IterTree().ResolvePath(names), aby znaleźć określony strumień według łańcucha nazw.CfbDocument i serializacja do bajtów lub pliku za pośrednictwem CfbWriter.ToBytes() lub CfbWriter.WriteFile().CfbStorage i CfbStream do dowolnego wąza przechowywania przed serializacją..msg bezpośredni dostęp do CF B umożliwia inspekcję i naprawy sądowe.MsgReader.FromFile() lub MsgReader.FromStream() i uzyskaj dostęp do podstawowych strumieni właściwości MAPI, rekordów odbiorców oraz podmagazynowania załączników.MsgDocument za pomocą MsgWriter.ToBytes() lub MsgWriter.WriteFile().MsgStorage, MsgStream oraz MsgStorage.FindStream().MsgStorage.FindStream() i MsgStorage.FindStorage()..msg z katalogich archiwum i ekstrakcja metadanych lub załączników..msg w sposób programowy i dostarczenie ich do systemów pocztowych opartych na programie Outlook.MapiMessage.Create(subject, body), ustaw SenderName, SenderEmailAddress i HtmlBody.To, Cc i Bcc za pomocą AddRecipient() z adresem e‑mail i nazwą wyświetlaną.AddAttachment() lub utwórz obiekty MapiAttachment bezpośrednio z Filename, MimeType, ContentId i Data.message.Save() lub message.Save(stream) oraz wczytaj ponownie przy użyciu MapiMessage.FromFile() lub MapiMessage.FromStream().message.Attachments i zapisz każdy attachment.Data na dysku.message.Subject, message.Body, message.SenderEmailAddress i message.Recipients bez automatyzacji COM..eml file (RFC 5322 / MIME) w pełny obiekt MapiMessage za pośrednictwem MapiMessage.LoadFromEml(stream).MapiMessage z powrotem do formatu MIME za pomocą message.SaveToEml() lub message.SaveToEml(stream)..eml i .msg do jednego formatu..eml i weryfikacja, czy przetrwają one podróż z MSG bez utraty danych.Otwórz plik Outlook MSG z strumienia i wydrukuj temat nie wymagane 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);
Zbuduj kompletny e-mail z nadawcą, odbiorcą i załącznikiem, a następnie napisz go 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);
Włóż standardowy plik .eml i zapisz go jako pliku Outlook .msg za pomocą wbudowanego przeglądarka 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);