Ú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átPříponaČístZapisovat
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.


Začínáme