1. Prodotti
  2.   Aspose.Email
  3.   Aspose.Email FOSS for .NET

Aspose.Email FOSS per .NET

Leggi, crea e processa file Outlook MSG, contenitori CFB e messaggi EML da .NET — gratuito e open source, senza dipendenza da Microsoft Outlook.

Libreria .NET Open-Source per file MSG, CFB e EML

Aspose.Email FOSS per .NET è una libreria C# con licenza MIT, senza dipendenze, per lavorare con i file .msg di Microsoft Outlook, contenitori Compound File Binary (CFB) e messaggi EML. Aggiungi un unico pacchetto NuGet e inizia subito a leggere, creare e processare i messaggi email senza installare Microsoft Outlook o alcun runtime proprietario.

La libreria fornisce due livelli di accesso.
Al livello basso, CfbReader e CfbWriter offrono il controllo completo sui contenitori binari CFB — attraversano le voci di directory, leggono e scrivono i nodi di storage e i dati di stream, e ispezionano la disposizione grezza dei settori.
MsgReader e MsgWriter gestiscono il formato MSG sopra CFB, esponendo i flussi di proprietà MAPI, le tabelle dei destinatari e i sotto‑storage degli allegati.
Al livello alto, MapiMessage consente di creare nuovi messaggi da zero, leggere oggetto, corpo, mittente e destinatari, gestire gli allegati e convertire tra i formati MSG ed EML tramite un’implementazione MIME integrata.

La libreria è destinata a .NET 8.0 o versioni successive e non ha dipendenze native, rendendola adatta per Windows, Linux, macOS, contenitori Docker e funzioni serverless. Per funzionalità aggiuntive e supporto commerciale, vedere Aspose.Email for .NET.

Lettura e scrittura di contenitori CFB

  • Open CFB files: Carica contenitori CFB esistenti da un percorso file, stream o array di byte tramite CfbReader.FromFile(), CfbReader.FromStream() o new CfbReader(data).
  • Sfoglia l’albero delle directory: Itera archivi, flussi e figli usando IterStorages(), IterStreams(), IterChildren() e IterTree().
  • Risolvi percorsi: Naviga gerarchie di archiviazione nidificate con ResolvePath(names) per individuare uno stream specifico tramite catena di nomi.
  • Scrivi contenitori CFB: Crea documenti CFB programmaticamente con CfbDocument e serializzali in byte o su file tramite CfbWriter.ToBytes() o CfbWriter.WriteFile().
  • Aggiungi archivi e flussi: Attacca i nodi CfbStorage e CfbStream a qualsiasi nodo di archiviazione prima della serializzazione.

Dove viene utilizzato l'accesso CFB

  • Ispezione file MSG: CFB è il formato contenitore per i file Outlook .msg — l’accesso diretto a CFB consente l’ispezione forense e la riparazione.
  • Formati binari personalizzati: Qualsiasi applicazione legacy che utilizza CFB per l’archiviazione dei dati può essere letta o scritta senza una dipendenza COM.
  • Recupero dati: Scorri l’intero albero delle directory ed estrai i byte grezzi del flusso da file CFB danneggiati o non standard.
  • Test di round-trip binario: Serializza un documento in byte e ricaricalo per verificare la serializzazione senza perdita nei test automatizzati.

Lettura e scrittura di file MSG

  • Leggi file MSG: Apri i file MSG di Outlook con MsgReader.FromFile() o MsgReader.FromStream() e accedi ai flussi di proprietà MAPI sottostanti, ai record dei destinatari e alle sotto‑archiviazioni degli allegati.
  • Scrivi file MSG: Genera file MSG da un MsgDocument con MsgWriter.ToBytes() o MsgWriter.WriteFile().
  • Accesso MAPI a basso livello: Leggi i flussi di proprietà di livello superiore, le proprietà nominate e i dati degli allegati tramite MsgStorage, MsgStream e MsgStorage.FindStream().
  • Navigazione dell’archivio MSG: Usa MsgStorage.FindStream() e MsgStorage.FindStorage() per individuare le sotto‑voci nominate.

Dove viene utilizzata l'elaborazione MSG

  • Pipeline di archiviazione email: Leggi in blocco i file .msg dalle directory di archivio ed estrai i metadati o gli allegati.
  • Strumenti di migrazione: Converti le raccolte MSG in formati standard per l’importazione in sistemi non-Outlook.
  • Scoperta legale: Analizza i flussi di proprietà MAPI grezzi per estrarre tutti i campi del messaggio, incluse le proprietà non standard.
  • Consegna automatica dei report: Costruisci file .msg programmaticamente e consegnali ai sistemi di posta basati su Outlook.

API di messaggi ad alto livello

  • Crea messaggi: Costruisci un’email completa con MapiMessage.Create(subject, body), imposta SenderName, SenderEmailAddress e HtmlBody.
  • Aggiungi destinatari: Allega i destinatari To, Cc e Bcc tramite AddRecipient() con indirizzo email e nome visualizzato.
  • Gestisci gli allegati: Aggiungi allegati file e stream con AddAttachment() o costruisci oggetti MapiAttachment direttamente con Filename, MimeType, ContentId e Data.
  • Salva e ricarica: Serializza con message.Save() o message.Save(stream) e ricarica con MapiMessage.FromFile() o MapiMessage.FromStream().

Dove viene utilizzata l'API di alto livello

  • Generazione automatica di email: Genera migliaia di file MSG personalizzati dai record dei dati in lavori batch.
  • Creazione di fixture di test: Crea file MSG noti e corretti con contenuto prevedibile per le suite di test di integrazione.
  • Estrazione degli allegati: Carica un file MSG, itera message.Attachments e salva ogni attachment.Data su disco.
  • Ispezione della proprietà: Accedi a message.Subject, message.Body, message.SenderEmailAddress e message.Recipients senza automazione COM.

Conversione EML e MIME

  • Load EML into MapiMessage: Analizza un file .eml standard (RFC 5322 / MIME) in un oggetto MapiMessage completo tramite MapiMessage.LoadFromEml(stream).
  • Save MapiMessage as EML: Serializza un MapiMessage nuovamente nel formato MIME con message.SaveToEml() o message.SaveToEml(stream).
  • Fedeltà del round-trip: Oggetto, corpo, HTML corpo, mittente, destinatari e allegati sono tutti conservati durante i round‑trip EML → MSG → EML.
  • Nessun parser MIME esterno: L’analisi EML è implementata nativamente nella libreria — non è necessaria la dipendenza System.Net.Mail.

Dove viene utilizzata la conversione EML

  • Collegamento di formato: Ricevi le email come EML dai server di posta e convertile in MSG per l’archiviazione compatibile con Outlook.
  • Conformità agli standard: Converti i file MSG proprietari in MIME standard per la consegna a qualsiasi trasporto di posta.
  • Normalizzazione dell’archivio: Normalizza un archivio misto di file .eml e .msg in un unico formato.
  • Flussi di lavoro di test: Genera fixture .eml nei test e verifica che sopravvivano al round-trip MSG senza perdita di dati.

Leggi l’oggetto da un file MSG

Apri un file Outlook MSG da uno stream e stampa l’oggetto — non è necessario Microsoft Outlook.

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 e salva un messaggio MSG

Crea un’email completa con mittente, destinatario e allegato, quindi scrivila in un file MSG.

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

Carica un file .eml standard e salvalo come file Outlook .msg utilizzando il parser MIME integrato.

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);
  

Risorse di Supporto e Apprendimento

 Italiano