Introduzione

Aspose.Email FOSS per .NET è una libreria C# gratuita e open-source che ti consente di lavorare con Outlook
file MSG, contenitori Compound File Binary (CFB) e messaggi EML direttamente nella tua .NET
applicazione — nessun Microsoft Outlook, nessun interop COM e nessuna libreria nativa richiesta. Distribuisci
lo come unico pacchetto NuGet e funziona identicamente su Windows, Linux, macOS, contenitori Docker,
e funzioni serverless.

La libreria risolve un problema ricorrente nel lavoro aziendale e di integrazione: i file Outlook .msg sono prodotti da milioni di utenti business, ma analizzarli senza Outlook ha storicamente richiesto l’automazione COM o librerie commerciali costose. Aspose.Email FOSS per .NET fornisce pieno supporto di lettura/scrittura per MSG, il contenitore binario CFB sottostante e il formato EML/MIME — il tutto sotto licenza MIT senza restrizioni d’uso.

Che tu stia costruendo una pipeline di archiviazione email, uno strumento di migrazione, un estrattore di allegati, o un generatore automatico di MSG, questa libreria ti offre un accesso diretto e a basso livello a ogni byte del formato email insieme a un’API di alto livello MapiMessage che ti consente di iniziare in pochi minuti.


Caratteristiche principali

Leggi file MSG di Outlook

Apri qualsiasi file .msg da un percorso o stream con MsgReader.FromFile() o MsgReader.FromStream().
Accedi al flusso completo delle proprietà MAPI, ai record dei destinatari e alle sotto‑archivio degli allegati a
livello di byte grezzo tramite MsgStorage e 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 file MSG da zero

Costruisci un’email completa programmaticamente usando MapiMessage.Create(). Imposta l’oggetto, il corpo in testo semplice il corpo HTML, il nome del mittente, l’indirizzo email del mittente, l’ora di consegna e l’ID del messaggio internet, quindi aggiungi i destinatari con AddRecipient() e gli allegati con AddAttachment(). Serializza con 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);

Converti EML in MSG (e ritorno)

Carica un file standard RFC 5322 .eml in un MapiMessage con MapiMessage.LoadFromEml(), quindi salvalo come file Outlook .msg — o inverti il processo con MapiMessage.SaveToEml(). Il parser MIME integrato conserva oggetto, corpo, corpo HTML, mittente, destinatari e allegati durante round‑trip completi 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);

Accesso a contenitore CFB a basso livello

I file Outlook MSG sono costruiti sul formato Compound File Binary (CFB) — un contenitore binario gerarchico simile a un file system. CfbReader espone l’intero albero delle directory: iterare archivi e flussi con IterStorages(), IterStreams() e IterChildren(), navigare verso voci specifiche per percorso con ResolvePath() e leggere i byte grezzi del flusso con GetStreamData().

CfbWriter ti consente di costruire e serializzare un documento CFB da zero. Crea un CfbDocument, collega i nodi CfbStorage e CfbStream, e chiama CfbWriter.ToBytes() o CfbWriter.WriteFile() per serializzare.

Accesso alle proprietà MAPI e agli allegati

La classe MapiPropertyCollection fornisce l’accesso tipizzato alle proprietà MAPI per qualsiasi oggetto MSG o di archiviazione: utilizzare Get(), Set(), Add() e Remove() con i valori enum standard CommonMessagePropertyId o PropertyTypeCode. Accedere ai metadati degli allegati e ai dati binari tramite le proprietà MapiAttachment: Filename, MimeType, ContentId e Data.


Avvio rapido

Installa il pacchetto:

dotnet add package Aspose.Email.Foss

Leggi l’oggetto da un file 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})");

Formati supportati

FormatoEstensioneLetturaScrittura
Compound File Binary.cfb
Outlook Message.msg
MIME / EML.eml

Open Source e Licenze

Aspose.Email FOSS per .NET è rilasciato sotto la licenza MIT. Puoi usarlo liberamente in progetti personali, commerciali e open-source senza restrizioni d’uso. Il codice sorgente è disponibile su github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.


Iniziare