Comment commencer avec FOSS pour Python
aspose-email-foss Python est une bibliothèque libre et sous licence MIT pour la création, la lecture et l’utilisation de la langue. Conversion de fichiers et conteneurs CFB Outlook MSG – pas besoin de Microsoft Office, pas de natif Extensions Python pure de PyPI.
Guide étape par étape
Étape 1 : Installer le package
Installer à partir de PyPI avec pip :
pip install aspose-email-fossVérifiez que l’installation est correctement chargée :
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Étape 2 : Importation des classes requises
Importer les modules dont vous avez besoin pour la création de messages, l’attribution de propriétés et la conversion de format:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdÉtape 3 : Créer un fichier
Utilisez MapiMessage.create() pour créer un message avec un sujet et un corps. définir les métadonnées de l’expéditeur avec PropertyId Ajoutez des récepteurs et joignez un fichier.
message = MapiMessage.create("Getting Started", "Hello from aspose-email-foss!")
message.set_property(PropertyId.SENDER_NAME, "Build Agent")
message.set_property(PropertyId.SENDER_EMAIL_ADDRESS, "agent@example.com")
message.set_property(
PropertyId.MESSAGE_DELIVERY_TIME,
datetime(2026, 1, 1, 9, 0, tzinfo=timezone.utc),
)
message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_attachment("notes.txt", b"Meeting notes go here.\n", mime_type="text/plain")
message.save("getting-started.msg")
print("getting-started.msg written.")Étape 4 : Lire le fichier MSG
Télécharger le fichier enregistré à l’aide de MapiMessage.from_file() En tant que gestionnaire de contexte. Accès à la subject et body Propriétés directement du produit retourné.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Étape 5 : Convertir le MSG en EML
to_email_bytes() convertit le message chargé au format RFC 5322. Écrivez le résultat à A à .eml Fichier avec la bibliothèque standard.
from pathlib import Path
with MapiMessage.from_file("getting-started.msg") as message:
Path("getting-started.eml").write_bytes(message.to_email_bytes())
print("getting-started.eml written.")Problèmes courants et solutions
ModuleNotFoundError: No module named 'aspose' Le package n’est pas installé dans l’environnement Python actif. pip install aspose-email-foss dans le même environnement virtuel que vous utilisez pour exécuter votre script. pip show aspose-email-foss.
FileNotFoundError Quand appeler MapiMessage.from_file() Le chemin que vous avez parcouru n’existe pas ou utilise le mauvais séparateur pour votre système d’administration. pathlib.Path Pour construire des chemins portables : MapiMessage.from_file(Path("folder") / "file.msg").
Le fichier MSG s’ouvre dans Outlook mais ne montre aucun sujet MapiMessage.create() accepte le sujet comme premier argument positionnel. Si vous avez passé une chaîne vide, Outlook affiche le message comme non-titré. Passez une string non vide ou définissez-la explicitement avec set_property(PropertyId.SUBJECT, "My Subject").
EML conversion produit un corps vide to_email_bytes() Utilisé body_html Si elle est installée, et revient à body.Il confirme que la au moins une de ces propriétés est non vide après avoir chargé le MSG avec un from_file().
Le contenu Unicode dans les destinataires ou le sujet est tranché Passé unicode_strings=True deux MapiMessage.create() Pour garantir que les propriétés de la chaîne sont Il est stocké dans Unicode (PT_UNICODE) plutôt que ANSI (pt_STRING8).
Questions fréquentes
Le logiciel de messagerie requiert-il Microsoft Office ?
La bibliothèque est entièrement autonome. elle lit et écrit les formats binaires MSG et CFB nativement en Python sans aucune dépendance à Microsoft Office, COM automation ou Win32 API.
Puis-je utiliser cette bibliothèque sur Linux ou macOS?
Oui oui. aspose-email-foss Python est pure et fonctionne sur n’importe quelle plate-forme qui prend en charge Python 3.10 ou ultérieure, y compris Windows, macOS, Linux, conteneurs Docker et fonctionnalités sans serveur.
La bibliothèque est-elle gratuite pour un usage commercial ?
Oui. Il est publié sous la licence MIT. Vous pouvez l’utiliser, modifier et redistribuer à tout usage, y compris les applications commerciales, sans frais de royalties ou d’attribution en dehors du texte de la licence.
Comment ajouter des récepteurs CC et BCC ?
Passé recipient_type=msg.RECIPIENT_TYPE_CC ou msg.RECIPIENT_TYPE_BCC Comme le troisième Argumentation à add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Comment puis-je enfoncer un MSG à l’intérieur d’un autre?
Utilisez MapiMessage.add_embedded_message_attachment(),En passant par l’intérieur MapiMessage Le premier argument est l’objet :
inner = MapiMessage.create("Inner message", "Embedded body.")
outer = MapiMessage.create("Outer message", "See attachment.")
outer.add_embedded_message_attachment(inner, "inner.msg")
outer.save("outer.msg")