Aspose.Email FOSS для .NET — це бібліотека C# з ліцензією MIT, без залежностей, для роботи з файлами Microsoft Outlook .msg, контейнерами Compound File Binary (CFB) та повідомленнями EML. Додайте один пакет NuGet і одразу починайте читати, створювати та обробляти електронні листи без встановлення Microsoft Outlook або будь‑якого пропрієтарного середовища виконання.
Бібліотека надає два рівні доступу. На низькому рівні 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 прямий доступ до CF B дозволяє правоохоронну інспекцію та ремонт.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 file .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);