Úvod
Aspose.Email FOSS for .NET je bezplatná, open-source knihovna v C#, která vám umožňuje pracovat s Outlook MSG soubory, kontejnery Compound File Binary (CFB) a EML zprávami přímo ve vaší .NET aplikaci — bez Microsoft Outlook, bez COM interop a bez nutnosti nativních knihoven. Distribuujte ji jako jediný NuGet balíček a bude fungovat identicky na Windows, Linux, macOS, Docker kontejnerech a serverless funkcích.
Knihovna řeší opakující se problém v podnikovém a integračním prostředí: soubory Outlook .msg jsou vytvářeny miliony firemních uživatelů, ale jejich parsování bez Outlooku historicky vyžadovalo COM automatizaci nebo drahé komerční knihovny. Aspose.Email FOSS for .NET poskytuje plnou podporu čtení/zápisu pro MSG, podkladný binární kontejner CFB a formát EML/MIME — vše pod licencí MIT bez jakýchkoli omezení používání.
Ať už vytváříte pipeline pro archivaci e‑mailů, migrační nástroj, extraktor příloh,
nebo automatizovaný generátor MSG, tato knihovna vám poskytuje přímý, nízkoúrovňový přístup ke každému bajtu
formátu e‑mailu spolu s vysoceúrovňovým MapiMessage API, které vám umožní začít během několika minut.
Klíčové funkce
Číst soubory Outlook MSG
Otevřete libovolný soubor .msg z cesty nebo proudu pomocí MsgReader.FromFile() nebo MsgReader.FromStream().
Získejte přístup k úplnému proudu vlastností MAPI, záznamům příjemců a podúložištím příloh na úrovni
surových bajtů pomocí MsgStorage a 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);
Vytvořit soubory MSG od začátku
Vytvořte kompletní e‑mail programově pomocí MapiMessage.Create(). Nastavte předmět, plain‑text
tělo, HTML tělo, jméno odesílatele, e‑mailovou adresu odesílatele, čas doručení a internetové ID zprávy, pak
přidejte příjemce pomocí AddRecipient() a přílohy pomocí AddAttachment(). Serializujte pomocí
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);
Převést EML na MSG (a zpět)
Načtěte standardní soubor RFC 5322 .eml do MapiMessage s MapiMessage.LoadFromEml(), poté jej uložte jako soubor Outlook .msg — nebo obrátíte proces pomocí MapiMessage.SaveToEml(). Vestavěný MIME parser zachovává předmět, tělo, HTML tělo, odesílatele, příjemce a přílohy během kompletních EML ↔ MSG přenosů.
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);
Nízkourovňový přístup k CFB kontejneru
Soubory Outlook MSG jsou postaveny na formátu Compound File Binary (CFB) — hierarchickém binárním kontejneru podobném souborovému systému. CfbReader zpřístupňuje celý adresářový strom: iterujte úložiště a proudy pomocí IterStorages(), IterStreams() a IterChildren(), navigujte k určitým položkám podle cesty pomocí ResolvePath() a čtěte surové bajty proudu pomocí GetStreamData().
CfbWriter vám umožňuje vytvořit a serializovat dokument CFB od nuly. Vytvořte CfbDocument,
připojte uzly CfbStorage a CfbStream a zavolejte CfbWriter.ToBytes() nebo
CfbWriter.WriteFile() k serializaci.
Přístup k vlastnostem a přílohám MAPI
Třída MapiPropertyCollection poskytuje typizovaný přístup k MAPI vlastnostem pro jakýkoli objekt MSG nebo úložiště: použijte Get(), Set(), Add() a Remove() se standardními hodnotami výčtu CommonMessagePropertyId nebo PropertyTypeCode. Přístup k metadatům příloh a binárním datům přes vlastnosti MapiAttachment: Filename, MimeType, ContentId a Data.
Rychlý start
Nainstalujte balíček:
dotnet add package Aspose.Email.Foss
Přečíst předmět ze souboru 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})");
Podporované formáty
| Formát | Přípona | Číst | Zapisovat |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Open Source a licencování
Aspose.Email FOSS for .NET je vydán pod licencí MIT. Můžete jej volně používat v osobních, komerčních a open-source projektech bez jakýchkoli omezení používání. Zdrojový kód je k dispozici na github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.