FAQ — Aspose.Email FOSS для .NET
Лицензирование
Какая лицензия используется в Aspose.Email.Foss?
Лицензия MIT. Ключ лицензии не требуется. Свободно используйте в личных, коммерческих и открытых проектах.
Установка
Как установить Aspose.Email.Foss?
dotnet add package Aspose.Email.FossКакая версия .NET требуется?
.NET 8.0 или новее. Библиотека не поддерживает .NET Framework или .NET Standard.
Есть ли нативные зависимости?
Нет. Библиотека полностью управляемая C# без нативных зависимостей. Она работает одинаково на Windows, Linux, macOS, Docker и безсерверных средах.
Поддержка форматов
Какие форматы электронной почты поддерживаются?
| Формат | Чтение | Запись |
|---|---|---|
| MSG (Outlook) | ✓ | ✓ |
| CFB (Compound File Binary) | ✓ | ✓ |
| EML (MIME / RFC 5322) | ✓ | ✓ |
Могу ли я читать файлы EML?
Да. Используйте MapiMessage.LoadFromEml(stream) для загрузки стандартного .eml файла в MapiMessage. Встроенный парсер MIME обрабатывает свернутые заголовки, содержимое base64, и
multipart‑сообщения.
Могу ли я конвертировать MSG в EML?
Да. Вызовите message.SaveToEml() для вывода byte[] в памяти, или
message.SaveToEml(stream) для записи в файл. Тема, тело, HTML‑тело, отправитель,
получатели и все вложения сохраняются.
Поддерживается ли TNEF (winmail.dat)?
Нет. Поддерживаются только стандартные форматы MSG (CFB) и EML (MIME).
Поддерживаются ли IMAP/SMTP/POP3?
Нет. Библиотека обрабатывает файлы MSG напрямую и не включает никакой сетевой/протокольный слой.
Использование API
Как загрузить файл MSG?
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("message.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);Как создать новое сообщение?
var message = MapiMessage.Create("Subject", "Body");
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
message.Save("output.msg");Как добавить вложения?
// From byte array
message.AddAttachment("file.pdf", pdfBytes, "application/pdf");
// From stream
using var stream = File.OpenRead("photo.png");
message.AddAttachment("photo.png", stream, "image/png");Как конвертировать EML в MSG?
using var eml = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(eml);
message.Save("message.msg");Как получить доступ к необработанной структуре CFB?
using Aspose.Email.Foss.Cfb;
using var reader = CfbReader.FromFile("message.msg");
foreach (var entry in reader.IterChildren(CfbConstants.RootStreamId))
Console.WriteLine(entry.Name);Известные ограничения
Есть ли не реализованные методы?
В текущей версии нет намеренно не реализованных заглушек.
Доступна ли поддержка календаря/назначений?
Библиотека обрабатывает файлы MSG в общем виде. Свойства, специфичные для календаря, можно получить через SetProperty() / GetPropertyValue() с идентификаторами свойств MAPI из CommonMessagePropertyId, но отдельного API для календаря или встреч нет.
Гарантирована ли потокобезопасность?
Каждый экземпляр MapiMessage и CfbReader независим. Параллельный доступ к отдельным экземплярам из разных потоков безопасен. Не делитесь одним экземпляром между потоками без внешней синхронизации.