Introducció
Aspose.Email FOSS per a .NET és una biblioteca C# gratuïta i de codi obert que et permet treballar amb fitxers Outlook MSG, contenidors Compound File Binary (CFB) i missatges EML directament a la teva aplicació .NET — sense Microsoft Outlook, sense interop COM i sense biblioteques natives requerides. Distribueix-la com a únic paquet NuGet i s’executa idènticament a Windows, Linux, macOS, contenidors Docker i funcions sense servidor.
La biblioteca resol un problema recurrent en l’àmbit empresarial i d’integració: els fitxers Outlook .msg són produïts per milions d’usuaris empresarials, però analitzar‑los sense Outlook ha requerit històricament automatització COM o biblioteques comercials costoses. Aspose.Email FOSS for .NET proporciona suport complet de lectura/escriptura per a MSG, el contenidor binari CFB subjacents i el format EML/MIME — tot sota la llicència MIT sense restriccions d’ús.
Ja sigui que estiguis construint una canalització d’arxiu de correu electrònic, una eina de migració, un extractor d’adjunts o un generador automàtic de MSG, aquesta biblioteca et proporciona accés directe i de baix nivell a cada byte del format de correu electrònic juntament amb una API d’alt nivell MapiMessage que et permet començar en minuts.
Característiques clau
Llegir fitxers MSG d’Outlook
Obriu qualsevol fitxer .msg des d’un camí o flux amb MsgReader.FromFile() o MsgReader.FromStream().
Accediu al flux complet de propietats MAPI, als registres de destinataris i a les subemmagatzematges d’adjuncions a
nivell de byte en brut mitjançant MsgStorage i 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);
Crea fitxers MSG des de zero
Construeix un correu electrònic complet de manera programàtica utilitzant MapiMessage.Create(). Defineix l’assumpte, el cos en text pla
el cos HTML, el nom del remitent, l’adreça de correu electrònic del remitent, l’hora d’enviament i l’ID del missatge d’Internet, després
afegeix destinataris amb AddRecipient() i adjunts amb AddAttachment(). Serialitza amb
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);
Convertir EML a MSG (i tornar)
Carrega un fitxer RFC 5322 .eml estàndard en un MapiMessage amb MapiMessage.LoadFromEml(),
després desa’l com a fitxer Outlook .msg — o inverteix el procés amb MapiMessage.SaveToEml().
El analitzador MIME integrat conserva l’assumpte, el cos, el cos HTML, l’emissor, els destinataris i els adjunts
durant viatges d’anada i tornada complets 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);
Accés de baix nivell al contenidor CFB
Els fitxers Outlook MSG es construeixen sobre el format Compound File Binary (CFB) — un contenidor binari jeràrquic similar a un sistema de fitxers. CfbReader exposa l’arbre complet del directori: iterar emmagatzematges i fluxos amb IterStorages(), IterStreams() i IterChildren(), navegar a entrades específiques per camí amb ResolvePath(), i llegir bytes bruts del flux amb GetStreamData().
CfbWriter us permet construir i serialitzar un document CFB des de zero. Creeu un CfbDocument,
adjunteu els nodes CfbStorage i CfbStream, i crideu CfbWriter.ToBytes() o
CfbWriter.WriteFile() per serialitzar.
Propietat MAPI i Accés a Adjuncions
La classe MapiPropertyCollection proporciona accés tipat a propietats MAPI per a qualsevol objecte MSG o d’emmagatzematge: utilitzeu Get(), Set(), Add() i Remove() amb valors d’enumeració estàndard CommonMessagePropertyId o PropertyTypeCode. Accediu a les metadades de les adjuncions i a les dades binàries a través de les propietats MapiAttachment: Filename, MimeType, ContentId i Data.
Inici ràpid
Instal·la el paquet:
dotnet add package Aspose.Email.Foss
Llegeix l’assumpte d’un fitxer 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})");
Formats compatibles
| Format | Extensió | Lectura | Escriptura |
|---|---|---|---|
| Fitxer binari compost | .cfb | ✓ | ✓ |
| Missatge d’Outlook | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Codi obert i llicència
Aspose.Email FOSS for .NET es publica sota la llicència MIT. Podeu utilitzar‑lo lliurement en projectes personals, comercials i de codi obert sense cap restricció d’ús. El codi font està disponible a github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.