Aspose.Email FOSS за .NET е библиотека с лиценз MIT, без зависимости C# за работа с Microsoft Outlook .msg файлове, Compound File Binary (CFB) контейнери и EML съобщения. Добавете един NuGet пакет и веднага започнете да четете, създавате и обработвате имейл съобщения без инсталиране на Microsoft Outlook или какъвто и да е собственически runtime.
Библиотеката предоставя два нива на достъп. На ниско ниво, CfbReader и CfbWriter дават пълен контрол върху CFB бинарните контейнери — обхождат директориите, четат и записват възли за съхранение и данни от потоци, и инспектират суровата подредба на секторите. MsgReader и MsgWriter обработват формата MSG върху CFB, като излагат MAPI потоци със свойства, таблици с получатели и под‑съхранения за прикачени файлове. На високо ниво, MapiMessage ви позволява да създавате нови съобщения от нулата, да четете тема, тяло, подател и получатели, да управлявате прикачени файлове и да конвертирате между формати MSG и EML чрез вградена MIME имплементация.
Библиотеката е насочена към .NET 8.0 или по-нова версия и няма родни зависимости, което я прави подходяща за Windows, Linux, macOS, Docker контейнери и безсървърни функции. За допълнителни функции и комерсиална поддръжка, вижте Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() или new CfbReader(data).IterStorages(), IterStreams(), IterChildren() и IterTree().ResolvePath(names), за да намерите конкретен поток по верига от имена.CfbDocument и ги сериализирайте в байтове или файл чрез CfbWriter.ToBytes() или CfbWriter.WriteFile().CfbStorage и CfbStream възли към всеки възел за съхранение преди сериализация..msg — директният достъп до CFB позволява форензична проверка и ремонт.MsgReader.FromFile() или MsgReader.FromStream() и достъпете подлежащите MAPI потоци на свойства, записи на получатели и подхранилища за прикачени файлове.MsgDocument с MsgWriter.ToBytes() или MsgWriter.WriteFile().MsgStorage, MsgStream и MsgStorage.FindStream().MsgStorage.FindStream() и MsgStorage.FindStorage(), за да намерите именувани подзаписи..msg файлове от архивни директории и извличане на метаданни или прикачени файлове..msg файлове програмно и ги доставяйте до пощенски системи, базирани на Outlook.MapiMessage.Create(subject, body), задайте SenderName, SenderEmailAddress и HtmlBody.To, Cc и Bcc получатели чрез AddRecipient() с имейл адрес и име за показване.AddAttachment() или създайте обекти MapiAttachment директно с Filename, MimeType, ContentId и Data.message.Save() или message.Save(stream) и презаредете с MapiMessage.FromFile() или MapiMessage.FromStream().message.Attachments, и запазете всеки attachment.Data на диск.message.Subject, message.Body, message.SenderEmailAddress и message.Recipients без COM автоматизация..eml файл (RFC 5322 / MIME) в пълен MapiMessage обект чрез MapiMessage.LoadFromEml(stream).MapiMessage обратно в MIME формат с message.SaveToEml() или message.SaveToEml(stream)..eml и .msg файлове в единен формат..eml фикстури в тестовете и проверете дали те преживяват MSG кръгово преминаване без загуба на данни.Отворете Outlook MSG файл от поток и отпечатайте темата — без необходим 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);
Създайте пълен имейл с подател, получател и прикачен файл, след което го запишете в 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);
Заредете стандартен .eml файл и го запишете като Outlook .msg файл, използвайки вградения 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);