Въведение
Aspose.Email FOSS for .NET е безплатна, с отворен код C# библиотека, която ви позволява да работите с Outlook
MSG файлове, контейнери Compound File Binary (CFB) и EML съобщения директно във вашето .NET
приложение — без Microsoft Outlook, без COM interop и без native libraries. Разпространявайте
я като един единствен NuGet пакет и тя работи идентично на Windows, Linux, macOS, Docker containers,
и serverless functions.
Библиотеката решава повтарящ се проблем в корпоративната и интеграционната работа: файлове Outlook .msg се създават от милиони бизнес потребители, но тяхното парсиране без Outlook исторически е изисквало COM автоматизация или скъпи комерсиални библиотеки. Aspose.Email FOSS за .NET предоставя пълна поддръжка за четене/писане на MSG, подлежащия CFB бинарен контейнер и формата EML/MIME — всичко под лиценз MIT без ограничения за използване.
Независимо дали създавате процес за архивиране на имейли, инструмент за миграция, екстрактор на прикачени файлове,
или автоматичен генератор на MSG, тази библиотека ви предоставя директен, ниско ниво достъп до всеки байт от
формата на имейла, заедно с високониво MapiMessage API, което ви позволява да започнете за минути.
Ключови функции
Четене на Outlook MSG файлове
Отворете всеки .msg файл от път или поток с MsgReader.FromFile() или MsgReader.FromStream().
Достъпете пълния MAPI поток на свойства, записите на получатели и подхранилищата за прикачени файлове на
независимото ниво на байтове чрез MsgStorage и MsgStream.
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 файлове от нулата
Създайте пълен имейл програмно, използвайки MapiMessage.Create(). Задайте тема, plain-text
тяло, HTML тяло, име на подателя, имейл адрес на подателя, време на доставка и интернет идентификатор на съобщението, след това
добавете получатели с AddRecipient() и прикачени файлове с AddAttachment(). Сериализирайте с
message.Save().
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 (и обратно)
Заредете стандартен RFC 5322 .eml файл в MapiMessage с MapiMessage.LoadFromEml(),
след което го запишете като Outlook .msg файл — или обърнете процеса с MapiMessage.SaveToEml().
Вградената MIME парсер запазва тема, тяло, HTML тяло, подател, получатели и прикачени файлове
през пълни EML ↔ MSG кръгови трансфери.
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);
Достъп до CFB контейнер на ниско ниво
Файловете Outlook MSG са изградени върху формата Compound File Binary (CFB) — йерархичен двоичен контейнер, подобен на файлова система. CfbReader разкрива пълното дърво на директориите: обхождайте съхраненията и потоковете с IterStorages(), IterStreams() и IterChildren(), навигирайте към конкретни елементи по път с ResolvePath(), и прочетете необработени байтове от потока с GetStreamData().
CfbWriter ви позволява да създавате и сериализирате CFB документ от нулата. Създайте CfbDocument,
прикачете CfbStorage и CfbStream възли и извикайте CfbWriter.ToBytes() или
CfbWriter.WriteFile() за сериализация.
Достъп до MAPI свойства и прикачени файлове
Класът MapiPropertyCollection предоставя типизиран достъп до MAPI свойства за всеки MSG или обект за съхранение
обект: използвайте Get(), Set(), Add() и Remove() със стандартните CommonMessagePropertyId
или PropertyTypeCode стойности от изброен тип. Достъпвайте метаданните на прикачените файлове и бинарните данни чрезMapiAttachment свойства: Filename, MimeType, ContentId и Data.
Бърз старт
Инсталирайте пакета:
dotnet add package Aspose.Email.Foss
Прочетете тема от MSG файл:
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Console.WriteLine(message.SenderEmailAddress);
foreach (var recipient in message.Recipients)
Console.WriteLine($"To: {recipient.EmailAddress}");
foreach (var attachment in message.Attachments)
Console.WriteLine($"Attachment: {attachment.Filename} ({attachment.MimeType})");
Поддържани формати
| Формат | Разширение | Четене | Запис |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Отворен код и лицензиране
Aspose.Email FOSS за .NET е публикуван под MIT лиценз. Можете да го използвате свободно в лични, търговски и проекти с отворен код без ограничения за употреба. Изходният код е достъпен на github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.