FAQ — Aspose.Email FOSS pour .NET
Licence
Quelle licence utilise Aspose.Email.Foss ?
Licence MIT. Aucune clé de licence n’est requise. Utilisez librement dans des projets personnels, commerciaux et open source.
Installation
Comment installer Aspose.Email.Foss ?
dotnet add package Aspose.Email.FossQuelle version de .NET est requise ?
.NET 8.0 ou version ultérieure. La bibliothèque ne prend pas en charge .NET Framework ou .NET Standard.
Y a-t-il des dépendances natives ?
Non. La bibliothèque est purement gérée en C# sans dépendances natives. Elle s’exécute de manière identique sur
Windows, Linux, macOS, Docker et les environnements sans serveur.
Prise en charge des formats
Quels formats d’e‑mail sont pris en charge ?
| Format | Lire | Écrire |
|---|---|---|
| MSG (Outlook) | ✓ | ✓ |
| CFB (Compound File Binary) | ✓ | ✓ |
| EML (MIME / RFC 5322) | ✓ | ✓ |
Puis-je lire les fichiers EML ?
Oui. Utilisez MapiMessage.LoadFromEml(stream) pour charger un fichier .eml standard dans un MapiMessage. L’analyseur MIME intégré gère les en‑têtes pliés, le contenu base64 et les messages multipart.
Puis-je convertir MSG en EML ?
Oui. Appelez message.SaveToEml() pour une sortie byte[] en mémoire, oumessage.SaveToEml(stream) pour écrire dans un fichier. Sujet, corps, corps HTML, expéditeur,
destinataires, et toutes les pièces jointes sont conservés.
Le TNEF (winmail.dat) est‑il pris en charge ?
Non. Seuls les formats standard MSG (CFB) et EML (MIME) sont pris en charge.
Le protocole IMAP/SMTP/POP3 est‑il pris en charge ?
Non. La bibliothèque gère directement les fichiers MSG et n’inclut aucune couche réseau/protocole.
Utilisation de l’API
Comment charger un fichier MSG ?
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("message.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);Comment créer un nouveau message ?
var message = MapiMessage.Create("Subject", "Body");
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
message.Save("output.msg");Comment ajouter des pièces jointes ?
// From byte array
message.AddAttachment("file.pdf", pdfBytes, "application/pdf");
// From stream
using var stream = File.OpenRead("photo.png");
message.AddAttachment("photo.png", stream, "image/png");Comment convertir EML en MSG ?
using var eml = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(eml);
message.Save("message.msg");Comment accéder à la structure CFB brute ?
using Aspose.Email.Foss.Cfb;
using var reader = CfbReader.FromFile("message.msg");
foreach (var entry in reader.IterChildren(CfbConstants.RootStreamId))
Console.WriteLine(entry.Name);Limitations connues
Y a-t-il des méthodes non implémentées ?
Aucun stub intentionnellement non implémenté n’existe dans la version actuelle.
Le support du calendrier/rendez-vous est‑il disponible ?
La bibliothèque gère les fichiers MSG de manière générique. Les propriétés spécifiques au calendrier peuvent être accessibles via SetProperty() / GetPropertyValue() avec les identifiants de propriété MAPI provenant de CommonMessagePropertyId, mais il n’existe aucune API dédiée au calendrier ou aux rendez‑vous.
La sécurité des threads est‑elle garantie ?
Chaque instance MapiMessage et CfbReader est indépendante. L’accès concurrent à des instances distinctes depuis des threads distincts est sûr. Ne partagez pas une même instance entre des threads sans synchronisation externe.