Introduction
Aspose.Email FOSS pour .NET est une bibliothèque C# gratuite et open-source qui vous permet de travailler avec Outlook
les fichiers MSG, les conteneurs Compound File Binary (CFB) et les messages EML directement dans votre .NET
application — pas de Microsoft Outlook, pas d’interop COM, et aucune bibliothèque native requise. Distribuez
la en tant que package NuGet unique et elle s’exécute de façon identique sous Windows, Linux, macOS, les conteneurs Docker,
et les fonctions serverless.
La bibliothèque résout un problème récurrent dans le travail d’entreprise et d’intégration : les fichiers Outlook .msg sont produits par des millions d’utilisateurs professionnels, mais les analyser sans Outlook a historiquement nécessité une automatisation COM ou des bibliothèques commerciales coûteuses. Aspose.Email FOSS pour .NET offre une prise en charge complète en lecture/écriture du MSG, du conteneur binaire CFB sous‑jacent, et du format EML/MIME — le tout sous licence MIT sans restrictions d’utilisation.
Que vous construisiez un pipeline d’archivage d’e-mails, un outil de migration, un extracteur de pièces jointes,
ou un générateur automatisé de MSG, cette bibliothèque vous donne un accès direct, de bas niveau, à chaque octet du
format e-mail ainsi qu’une API de haut niveau MapiMessage qui vous permet de commencer en quelques minutes.
Fonctionnalités clés
Lire les fichiers MSG Outlook
Ouvrez n’importe quel fichier .msg à partir d’un chemin ou d’un flux avec MsgReader.FromFile() ou MsgReader.FromStream().
Accédez au flux complet de propriétés MAPI, aux enregistrements de destinataires et aux sous‑stockages de pièces jointes au
niveau brut des octets via MsgStorage et 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);
Créer des fichiers MSG à partir de zéro
Construisez un e‑mail complet par programme en utilisant MapiMessage.Create(). Définissez l’objet, le corps en texte brut,
le corps HTML, le nom de l’expéditeur, l’adresse e‑mail de l’expéditeur, l’heure d’envoi et l’ID de message Internet, puis
ajoutez des destinataires avec AddRecipient() et des pièces jointes avec AddAttachment(). Sérialisez avec
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);
Convertir EML en MSG (et retour)
Chargez un fichier RFC 5322 .eml standard dans un MapiMessage avec MapiMessage.LoadFromEml(),
puis enregistrez‑le en tant que fichier Outlook .msg — ou inversez le processus avec MapiMessage.SaveToEml().
L’analyseur MIME intégré préserve l’objet, le corps, le corps HTML, l’expéditeur, les destinataires et les pièces jointes
au cours de cycles complets 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);
Accès bas niveau au conteneur CFB
Les fichiers Outlook MSG sont construits sur le format Compound File Binary (CFB) — un conteneur binaire hiérarchique similaire à un système de fichiers. CfbReader expose l’arborescence complète du répertoire : itérer les stockages et les flux avec IterStorages(), IterStreams() et IterChildren(), naviguer vers des entrées spécifiques par chemin avec ResolvePath(), et lire les octets bruts du flux avec GetStreamData().
CfbWriter vous permet de créer et de sérialiser un document CFB à partir de zéro. Créez un CfbDocument,
attachez les nœuds CfbStorage et CfbStream, et appelez CfbWriter.ToBytes() ou
CfbWriter.WriteFile() pour sérialiser.
Accès aux propriétés MAPI et aux pièces jointes
La classe MapiPropertyCollection fournit un accès typé aux propriétés MAPI pour tout objet MSG ou de stockage : utilisez Get(), Set(), Add() et Remove() avec les valeurs d’énumération standard CommonMessagePropertyId ou PropertyTypeCode. Accédez aux métadonnées des pièces jointes et aux données binaires via les propriétés MapiAttachment : Filename, MimeType, ContentId et Data.
Démarrage rapide
Installez le package:
dotnet add package Aspose.Email.Foss
Lire l’objet d’un fichier 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})");
Formats pris en charge
| Format | Extension | Lecture | Écriture |
|---|---|---|---|
| Compound File Binary | .cfb | ✓ | ✓ |
| Outlook Message | .msg | ✓ | ✓ |
| MIME / EML | .eml | ✓ | ✓ |
Open Source et licences
Aspose.Email FOSS for .NET est publié sous la licence MIT. Vous pouvez l’utiliser librement dans des projets personnels, commerciaux et open‑source sans aucune restriction d’utilisation. Le code source est disponible sur github.com/aspose-email-foss/Aspose.Email-FOSS-for-.Net.