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

FormatExtensióLecturaEscriptura
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.


Començar