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

Aspose.Email FOSS for .NET

Читать, создавать и обрабатывать файлы Outlook MSG, контейнеры CFB и сообщения EML из .NET — бесплатно и с открытым исходным кодом, без зависимости от Microsoft Outlook.

Библиотека .NET с открытым исходным кодом для файлов MSG, CFB и EML.

Aspose.Email FOSS for .NET — это библиотека C# с лицензией MIT, не требующая зависимостей, для работы с файлами 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.

Контейнер CFB чтение и запись

  • Открыть файлы CFB: Загрузить существующие контейнеры CF B с пути, потока или байтового массива файлов через CfbReader.FromFile(), CfbReader.FromStream() или new CfbReader(data).
  • ** Пройдите по дереву каталога:** Итерация хранилищ, потоков и детей с использованием IterStorages(), IterStreams(),IterChildren() и IterTree().
  • Решение путей: Навигация в иерархиях гнездованного хранилища с помощью ResolvePath(names) для поиска конкретного потока по цепочке имен.
  • Напишите контейнеры CFB: Создавайте документы CF B программируемо с помощью CfbDocument и сериализуйте их в байты или файлы через CfbWriter.ToBytes() или CfbWriter.WriteFile().
  • ** Добавление хранилищ и потоков:** Прикрепить узлы CfbStorage и CfbStream к любому узлу хранения перед сериализацией.

Где используется доступ CFB

  • ** Инспекция файла MSG:** CFB - это формат контейнера для Outlook .msg прямой доступ к CF B позволяет проводить судебную проверку и ремонт.
  • Кассовые бинарные форматы: Любое устаревшее приложение, использующее CFB для хранения данных, может быть прочитано или записано без зависимости COM.
  • ** Восстановление данных:** Пройдите по полному дереву каталогов и извлечьте необработанные байты потока из поврежденных или нестандартных файлов CFB.
  • Бинарное тестирование по пути: Сериализация документа в байты и перезагрузка его для проверки сериализации без потерь при автоматизированных тестах.

Файл MSG Читать и писать

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

Где используется обработка ГСМ

  • Архивные 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 автоматизации.

EML и MIME преобразование

  • ** Загрузить EML в MapiMessage:** Разрабатывать стандартный файл .eml (RFC 5322 / MIME) в полный объект MapiMessage через MapiMessage.LoadFromEml(stream).
  • Сохранить MapiMessage как EML: Сериализировать MapiMessage обратно в формат MIME с помощью message.SaveToEml() или message.SaveToEml(stream).
  • Вертовой путь: Субъект, тело, HTML-тело, отправитель, получатели и приложения сохраняются через EML → MSG → EM L.
  • Никакой внешней MIME-разрабатывающей системы: EML-розборки реализуются в библиотеке не требуется зависимость от System.Net.Mail.

Где используется преобразование EML

  • ** Формат моста:** Принимать электронные письма в виде EML от почтовых серверов и конвертировать их на MSG для совместимости Outlook.
  • Соответствие стандартам: Преобразовать файлы MSG в стандартные MIME для доставки на любой почтовый транспорт.
  • Архивная нормализация: Нормализировать смешанный архив файлов .eml и .msg в один формат.
  • Тестирование рабочих процессов: Создать приборы .eml в тестах и проверить, что они выдерживают MSG-поездку без потери данных.

Читать предмет из файла 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);
  

Ресурсы поддержки и обучения

 Русский