FOSS per .NET è una libreria C# con licenza MIT, senza dipendenze, per lavorare con file Microsoft Outlook .msg , contenitori Compound File Binary (CFB) e messaggi EML. Aggiungi un singolo pacchetto NuGet e inizia immediatamente a leggere, creare ed elaborare i messaggeri di posta elettronica senza installare Microsoft Outlook o qualsiasi runtime proprietario.
La libreria fornisce due livelli di accesso. Al livello basso, CfbReader e CfbWriter danno il pieno controllo sui contenitori binari CFB traverse directory entries, leggere e scrivere nodi di archiviazione e dati del flusso e ispezionare la disposizione del settore grezzo. MsgReader ed MsgWriter gestiscono il formato MSG in cima a CF B , esprimendo flussi delle proprietà MAPI, tabelle dei destinatari e sottostoraggi degli allegati .Al livello alto,MapiMessage consente di creare nuovi messaggi da zero, lettura, corpo, mittente e riceventi, gestione degli attaccamenti e conversione tra formato EMLIME e MS G tramite un’implementazione integrata di MIME.
La libreria è progettata per .NET 8.0 o successiva e non ha dipendenze native, rendendola adatta a Windows, Linux, macOS, container Docker e funzioni senza server. Per ulteriori funzionalità e supporto commerciale, vedere Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() o new CfbReader(data).IterStorages(), IterStreams() , IterChildren() e IterTree().ResolvePath(names) per individuare un flusso specifico in base alla catena dei nomi.CfbDocument e serializzare in byte o file tramite CfbWriter.ToBytes() o CfbWriter.WriteFile().CfbStorage e CfbStream a qualsiasi nodo di archiviazione prima della serializzazione..msg l’accesso diretto a CF B consente ispezioni e riparazioni forensi.MsgReader.FromFile() o MsgReader.FromStream() e accedi ai flussi di proprietà MAPI sottostanti, record dei destinatari e sotto-archiviazioni degli allegati.MsgDocument con MsgWriter.ToBytes() o MsgWriter.WriteFile().MsgStorage, MsgStream e MsgStorage.FindStream().MsgStorage.FindStream() e MsgStorage.FindStorage() per individuare le sottotitoli nominati..msg da directory di archivio ed estrarre metadati o allegati..msg in modo programmatico e consegnarli ai sistemi di posta basati su Outlook.MapiMessage.Create(subject, body), impostando SenderName, SenderEmailAddress e HtmlBody.To, Cc e Bcc attraverso AddRecipient() con indirizzo email e nome di visualizzazione.AddAttachment() o costruisci oggetti MapiAttachment direttamente conFilename, MimeType , ContentId e Data.message.Save() o message.Save(stream) e ricarica conMapiMessage.FromFile() oppure MapiMessage.FromStream().message.Attachments, e salva ogni attachment.Data su disco.message.Subject, message.Body, message.SenderEmailAddress e message.Recipients senza automazione COM..eml (RFC 5322 / MIME) in un oggetto completo MapiMessage tramite MapiMessage.LoadFromEml(stream).MapiMessage in formato MIME con message.SaveToEml() o message.SaveToEml(stream)..eml e .msg in un unico formato..eml nelle prove e verificare che sopravvivano al viaggio MSG senza perdita di dati.Aprire un file MSG di Outlook da una stream e stampare 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 un’email completa con mittente, destinatario e allegato, poi scrivi 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);
Caricare un file standard .eml e salvarlo come 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);