Introduktion
Aspose.Email FOSS for .NET är ett gratis, öppen källkod C#-bibliotek som låter dig arbeta med Outlook MSG-filer, Compound File Binary (CFB)-behållare och EML-meddelanden direkt i din .NET-applikation — ingen Microsoft Outlook, ingen COM-interoperabilitet och inga inhemska bibliotek krävs. Distribuera det som ett enda NuGet-paket så kör det identiskt på Windows, Linux, macOS, Docker-behållare och serverlösa funktioner.
Biblioteket löser ett återkommande problem i företags- och integrationsarbete: Outlook .msg‑filer skapas av miljontals affärsanvändare, men att parsning av dem utan Outlook har historiskt krävt COM‑automation eller dyra kommersiella bibliotek. Aspose.Email FOSS för .NET tillhandahåller full läs/skriv‑stöd för MSG, den underliggande CFB‑binära behållaren och EML/MIME‑formatet — allt under MIT‑licensen utan användningsrestriktioner.
Oavsett om du bygger en e‑postarkiveringspipeline, ett migrationsverktyg, en bilagextrahering eller en automatiserad MSG‑generator, ger detta bibliotek dig direkt, låg‑nivå åtkomst till varje byte av e‑postformatet tillsammans med ett hög‑nivå MapiMessage‑API som låter dig komma igång på några minuter.
Nyckelfunktioner
Läs Outlook MSG-filer
Öppna valfri .msg-fil från en sökväg eller ström med MsgReader.FromFile() eller MsgReader.FromStream().
Få åtkomst till hela MAPI‑egenskapsströmmen, mottagarposter och bilagors underlagring på
rå byte‑nivå via MsgStorage och 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);
Skapa MSG Files från grunden
Bygg ett komplett e‑postmeddelande programatiskt med MapiMessage.Create(). Ställ in ämnet, vanlig text‑kropp
kropp, HTML‑kropp, avsändarens namn, avsändarens e‑postadress, leveranstid och internet‑meddelande‑ID, lägg sedan till
mottagare med AddRecipient() och bilagor med AddAttachment(). Serialisera medmessage.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);
Konvertera EML till MSG (och tillbaka)
Läs in en standard RFC 5322 .eml‑fil i en MapiMessage med MapiMessage.LoadFromEml(),
spara den sedan som en Outlook .msg‑fil — eller vänd processen med MapiMessage.SaveToEml().
Den inbyggda MIME‑parsers bevarar ämne, brödtext, HTML‑brödtext, avsändare, mottagare och bilagor
genom hela EML ↔ MSG‑rundresor.
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);
Lågnivå CFB-behållaråtkomst
Outlook MSG-filer är byggda på Compound File Binary (CFB)-formatet — en hierarkisk binär behållare som liknar ett filsystem. CfbReader visar hela katalogträdet: iterera lagringar och strömmar med IterStorages(), IterStreams() och IterChildren(), navigera till specifika poster via sökväg med ResolvePath() och läs råa strömbytes med GetStreamData().
CfbWriter låter dig konstruera och serialisera ett CFB-dokument från grunden. Skapa en CfbDocument, bifoga CfbStorage och CfbStream noder, och anropa CfbWriter.ToBytes() eller CfbWriter.WriteFile() för att serialisera.
MAPI‑egenskap och åtkomst till bilagor
Klassen MapiPropertyCollection tillhandahåller typad MAPI‑egenskapsåtkomst för alla MSG‑ eller lagringsobjekt: använd Get(), Set(), Add() och Remove() med standard CommonMessagePropertyId
eller PropertyTypeCode enum‑värden. Få åtkomst till bilagans metadata och binära data viaMapiAttachment‑egenskaper: Filename, MimeType, ContentId och Data.
Snabbstart
Installera paketet:
dotnet add package Aspose.Email.Foss
Läs ett ämne från en MSG-fil:
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})");
Supporterade format
| Format | Filändelse | Läsa | Skriva |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Öppen källkod & licensiering
Aspose.Email FOSS för .NET är släppt under MIT-licensen. Du får använda den fritt i personliga, kommersiella och öppen källkod-projekt utan några användningsrestriktioner. Källkoden är tillgänglig på github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.