Introduction
Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg fichiers entièrement en Python, sans dépendance à Microsoft Office ou à aucune extension native. Installez-le avec pip install aspose-email-foss>=26.3 et commencez à travailler immédiatement avec les conteneurs MSG et CFB.
La bibliothèque cible Python 3.10 et versions ultérieures. Elle implémente le format Compound File Binary (CFB) et le format de message MSG à partir de zéro, vous offrant un contrôle déterministe sur la sérialisation et la lecture des courriels. Comme l’implémentation est purement Python, elle s’exécute de manière identique sous Windows, macOS, Linux et dans des environnements conteneurisés.
Aspose.Email FOSS is designed for developers building email processing pipelines, compliance archival tools, forensic analysis workflows, or any application that needs to create or inspect Outlook-compatible message files without a running Exchange or Outlook installation.
Fonctionnalités clés
Créer des fichiers MSG
Construisez des fichiers compatibles Outlook .msg à partir de zéro en utilisant MapiMessage.create(). Définissez les propriétés MAPI standard telles que l’objet, l’expéditeur, l’heure de livraison et les champs d’affichage via le PropertyId enum. Ajoutez des destinataires avec add_recipient() et des pièces jointes avec add_attachment(), puis enregistrez le résultat sur le disque.
from aspose.email_foss import msg
message = msg.MapiMessage.create(
"Quarterly status update and rollout plan",
"Hello team,\n\nPlease find the latest rollout summary attached.\n\nRegards,\nEngineering",
)
message.set_property(msg.PropertyId.SENDER_NAME, "Build Agent")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "build.agent@example.com")
message.set_property(msg.PropertyId.INTERNET_MESSAGE_ID, "<example-001@example.com>")
message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_recipient("bob@example.com", display_name="Bob Example")
message.add_recipient(
"carol@example.com",
display_name="Carol Example",
recipient_type=msg.RECIPIENT_TYPE_CC,
)
message.add_attachment("hello.txt", b"sample attachment\n", mime_type="text/plain")
message.save("example-message.msg")
Lire et convertir MSG en EML
Chargez un fichier existant .msg avec MapiMessage.from_file() et convertissez-le en un Python standard EmailMessage objet via to_email_message(). À partir de là, sérialisez en octets EML pour le stockage ou le transfert via SMTP.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("example-message.msg") as loaded:
email_message = loaded.to_email_message()
eml_bytes = email_message.as_bytes()
with open("example-message.eml", "wb") as f:
f.write(eml_bytes)
Inspecter les détails internes du MSG
Utilisez MsgReader et son sous-jacent CFBReader pour inspecter la structure binaire d’un fichier MSG. Accédez aux métadonnées CFB (version, taille du secteur, nombre d’entrées de répertoire) et parcourez les entrées de propriétés MAPI au niveau binaire.
from aspose.email_foss import msg
reader = msg.MsgReader.from_file("example-message.msg")
cfb = reader.cfb_reader
print(f"CFB major_version={cfb.major_version}")
print(f"sector_size={cfb.sector_size}")
print(f"directory_entries={cfb.directory_entry_count}")
for entry in reader.iter_top_level_fixed_length_properties():
tag = entry.property_tag
print(f"tag=0x{tag:08X} flags=0x{entry.flags:08X} value={entry.value.hex()}")
reader.close()
Accès CFB de bas niveau
Lisez et parcourez tout conteneur Compound File Binary en utilisant CFBReader. Énumérez les stockages et les flux, résolvez les chemins par nom, et extrayez les données brutes du flux pour un traitement personnalisé.
from aspose.email_foss.cfb import CFBReader
reader = CFBReader.from_file("example-message.msg")
for entry in reader.iter_storages():
print(f"Storage: {entry.name}")
for entry in reader.iter_streams():
data = reader.get_stream_data(entry.stream_id)
print(f"Stream: {entry.name} size={len(data)}")
reader.close()
Démarrage rapide
Installez la bibliothèque et créez votre premier fichier MSG en moins de dix lignes:
pip install aspose-email-foss>=26.3
from aspose.email_foss import msg
message = msg.MapiMessage.create("Hello from Python", "This is a test message.")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "sender@example.com")
message.add_recipient("recipient@example.com", display_name="Recipient")
message.save("hello.msg")
with msg.MapiMessage.from_file("hello.msg") as loaded:
eml = loaded.to_email_message()
print(eml["Subject"])
Formats pris en charge
| Format | Importer | Exporter |
|---|---|---|
| MSG | Oui | Oui |
| CFB | Oui | Oui |
Open Source & Licences
Aspose.Email FOSS for Python is released under the MIT License. Vous pouvez l’utiliser dans des projets personnels, internes et commerciaux sans restriction. Le code source est disponible sur GitHub.