Aspose.Email FOSS pour .NET est une bibliothèque C# sous licence MIT, sans dépendances, pour travailler avec les fichiers .msg de Microsoft Outlook, les conteneurs Compound File Binary (CFB) et les messages EML. Ajoutez un seul package NuGet et commencez immédiatement à lire, créer et traiter les messages électroniques sans installer Microsoft Outlook ni aucun runtime propriétaire.
La bibliothèque offre deux niveaux d’accès. Au niveau bas, CfbReader et CfbWriter donnent un contrôle complet sur les conteneurs binaires CFB — parcourir les entrées de répertoire, lire et écrire les nœuds de stockage et les données de flux, et inspecter la disposition brute des secteurs. MsgReader et MsgWriter gèrent le format MSG au-dessus de CFB, exposant les flux de propriétés MAPI, les tables de destinataires et les sous‑stockages de pièces jointes. Au niveau haut, MapiMessage vous permet de créer de nouveaux messages à partir de zéro, de lire le sujet, le corps, l’expéditeur et les destinataires, de gérer les pièces jointes, et de convertir entre les formats MSG et EML via une implémentation MIME intégrée.
La bibliothèque cible .NET 8.0 ou version ultérieure et n’a aucune dépendance native, ce qui la rend adaptée à Windows, Linux, macOS, les conteneurs Docker et les fonctions sans serveur. Pour des fonctionnalités supplémentaires et un support commercial, voir Aspose.Email for .NET.
CfbReader.FromFile(), CfbReader.FromStream() ou new CfbReader(data).IterStorages(), IterStreams(), IterChildren() et IterTree().ResolvePath(names) pour localiser un flux spécifique par chaîne de noms.CfbDocument et sérialisez‑les en octets ou en fichier via CfbWriter.ToBytes() ou CfbWriter.WriteFile().CfbStorage et CfbStream à n’importe quel nœud de stockage avant la sérialisation..msg — l’accès direct à CFB permet une inspection et une réparation forensiques.MsgReader.FromFile() ou MsgReader.FromStream() et accédez aux flux de propriétés MAPI sous-jacents, aux enregistrements de destinataires et aux sous-stockages de pièces jointes.MsgDocument avec MsgWriter.ToBytes() ou MsgWriter.WriteFile().MsgStorage, MsgStream et MsgStorage.FindStream().MsgStorage.FindStream() et MsgStorage.FindStorage() pour localiser les sous‑entrées nommées..msg depuis les répertoires d’archive et extraire les métadonnées ou les pièces jointes..msg de manière programmatique et livrez‑les aux systèmes de messagerie basés sur Outlook.MapiMessage.Create(subject, body), définissez SenderName, SenderEmailAddress et HtmlBody.To, Cc et Bcc via AddRecipient() avec l’adresse e-mail et le nom d’affichage.AddAttachment() ou construire des objets MapiAttachment directement avec Filename, MimeType, ContentId et Data.message.Save() ou message.Save(stream) et recharger avec MapiMessage.FromFile() ou MapiMessage.FromStream().message.Attachments, et enregistrez chaque attachment.Data sur le disque.message.Subject, message.Body, message.SenderEmailAddress et message.Recipients sans automatisation COM..eml standard (RFC 5322 / MIME) en un objet complet MapiMessage via MapiMessage.LoadFromEml(stream).MapiMessage en format MIME avec message.SaveToEml() ou message.SaveToEml(stream)..eml et .msg en un seul format..eml dans les tests et vérifiez qu’elles survivent au aller-retour MSG sans perte de données.Ouvrez un fichier Outlook MSG à partir d’un flux et affichez l’objet — aucun Microsoft Outlook requis.
using System.IO;
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("sample.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);
Créez un e‑mail complet avec l’expéditeur, le destinataire et la pièce jointe, puis enregistrez‑le dans un fichier 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);
Chargez un fichier .eml standard et enregistrez-le en tant que fichier Outlook .msg à l’aide du parseur MIME intégré.
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);