1. Продукти
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS для .NET

Читати, створювати та обробляти файли Outlook MSG, контейнери CFB та повідомлення EML за допомогою .NET — безкоштовно та з відкритим кодом, без залежності від Microsoft Outlook.

Відкрита .NET бібліотека для файлів MSG, CFB та EML

Aspose.Email FOSS для .NET — це бібліотека C# з ліцензією MIT, без залежностей, для роботи з файлами Microsoft Outlook .msg, контейнерами Compound File Binary (CFB) та повідомленнями EML. Додайте один пакет NuGet і одразу починайте читати, створювати та обробляти електронні листи без встановлення Microsoft Outlook або будь-якого пропрієтарного середовища виконання.

Бібліотека надає два рівні доступу. На низькому рівні CfbReader і CfbWriter забезпечують повний контроль над CFB binary containers — перебирають записи каталогу, читають і записують вузли сховища та дані потоків, а також інспектують необроблену розкладку секторів. MsgReader і MsgWriter обробляють формат MSG поверх CFB, відкриваючи MAPI property streams, таблиці отримувачів та підсховища вкладень. На високому рівні MapiMessage дозволяє створювати нові повідомлення з нуля, читати тему, тіло, відправника та отримувачів, керувати вкладеннями та конвертувати між MSG і EML format via a built-in MIME implementation.

Бібліотека орієнтована на .NET 8.0 або новішу та не має нативних залежностей, що робить її придатною для Windows, Linux, macOS, Docker‑контейнерів та безсерверних функцій. Для додаткових можливостей та комерційної підтримки дивіться Aspose.Email for .NET.

Читання та запис контейнерів CFB

  • Open CFB files: Завантажте існуючі CFB контейнери з шляху до файлу, потоку або масиву байтів за допомогою CfbReader.FromFile(), CfbReader.FromStream() або new CfbReader(data).
  • Перебрати дерево каталогів: Ітеруйте сховища, потоки та дочірні елементи, використовуючи IterStorages(), IterStreams(), IterChildren() та IterTree().
  • Resolve paths: Навігуйте по вкладених ієрархіях сховища за допомогою ResolvePath(names), щоб знайти конкретний потік за ланцюжком імен.
  • Запис CFB контейнерів: Створюйте CFB документи програмно за допомогою CfbDocument та серіалізуйте їх у байти або файл за допомогою CfbWriter.ToBytes() або CfbWriter.WriteFile().
  • Додати сховища та потоки: Прикріпіть CfbStorage та CfbStream вузли до будь‑якого вузла сховища перед серіалізацією.

Де використовується доступ CFB

  • Перевірка файлів MSG: CFB — це формат контейнера для файлів Outlook .msg — прямий доступ до CFB дозволяє проводити судово‑медичну інспекцію та ремонт.
  • Користувацькі бінарні формати: Будь-яку застарілу програму, що використовує CFB для зберігання даних, можна читати або записувати без залежності від COM.
  • Відновлення даних: Обійти повне дерево каталогів і витягти необроблені байти потоку з пошкоджених або нестандартних CFB‑файлів.
  • Бінарне тестування кругового проходу: Серіалізуйте документ у байти та перезавантажте його, щоб перевірити безвтратну серіалізацію в автоматизованих тестах.

Читання та запис файлів MSG

  • Читати файли MSG: Відкривайте файли Outlook MSG за допомогою MsgReader.FromFile() або MsgReader.FromStream() і отримуйте доступ до базових потоків властивостей MAPI, записів одержувачів та підсховищ вкладень.
  • Створювати MSG файли: Створюйте MSG файли з MsgDocument за допомогою MsgWriter.ToBytes() або MsgWriter.WriteFile().
  • Низькорівневий доступ до MAPI: Читайте потоки властивостей верхнього рівня, іменовані властивості та дані вкладень через MsgStorage, MsgStream та MsgStorage.FindStream().
  • Навігація по сховищу MSG: Використовуйте MsgStorage.FindStream() та MsgStorage.FindStorage(), щоб знайти іменовані підзаписи.

Де використовується обробка MSG

  • Email archival pipelines: Масово читати .msg файли з каталогів архіву та вилучати метадані або вкладення.
  • Інструменти міграції: Конвертуйте колекції MSG у стандартні формати для імпорту в системи, які не є Outlook.
  • Юридичне розкриття: Проаналізуйте необроблені потоки властивостей MAPI, щоб витягти всі поля повідомлення, включаючи нестандартні властивості.
  • Автоматизована доставка звітів: Створюйте файли .msg програмно та доставляйте їх у поштові системи на базі Outlook.

API високого рівня повідомлень

  • Створити повідомлення: Створіть повний лист з 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().

Де використовується високорівневий API

  • Автоматичне створення електронних листів: Створюйте тисячі персоналізованих MSG‑файлів з даних записів у пакетних завданнях.
  • Створення тестових фікстур: Створюйте відомі коректні MSG‑файли з передбачуваним вмістом для наборів інтеграційних тестів.
  • Витягування вкладень: Завантажте файл MSG, ітеруйте message.Attachments і збережіть кожен attachment.Data на диск.
  • Перевірка властивості: Доступ до message.Subject, message.Body, message.SenderEmailAddress та message.Recipients без COM automation.

Конвертація EML та MIME

  • Load EML into MapiMessage: Розпарсити стандартний файл .eml (RFC 5322 / MIME) у повний об’єкт MapiMessage за допомогою MapiMessage.LoadFromEml(stream).
  • Save MapiMessage as EML: Серіалізуйте MapiMessage назад у формат MIME за допомогою message.SaveToEml() або message.SaveToEml(stream).
  • Round-trip fidelity: Тема, тіло, HTML тіло, відправник, одержувачі та вкладення зберігаються під час кругових перетворень EML → MSG → EML.
  • Немає зовнішнього MIME‑парсера: Парсинг EML реалізовано нативно в межах бібліотеки — не потрібна залежність System.Net.Mail.

Де використовується конвертація EML

  • Перетворення формату: Отримуйте електронні листи у форматі EML від поштових серверів і конвертуйте їх у MSG для зберігання, сумісного з Outlook.
  • Відповідність стандартам: Перетворюйте пропрієтарні файли MSG у стандартний MIME для доставки в будь‑який поштовий транспорт.
  • Архівна нормалізація: Нормалізуйте змішаний архів файлів .eml та .msg до єдиного формату.
  • Тестування робочих процесів: Створюйте .eml фікстури у тестах і перевіряйте, що вони проходять MSG round-trip без втрати даних.

Прочитати тему з файлу 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

Створіть повний електронний лист з відправником, одержувачем та вкладенням, а потім запишіть його у файл 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 у MSG

Завантажте стандартний файл .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);
  

Ресурси Підтримки та Навчання

 Українська