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
| Formato | Estensione | Lettura | Scrittura |
|---|---|---|---|
| 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.