Comment créer des fichiers MSG en Python

Comment créer des fichiers MSG en Python

aspose-email-foss for Python vous permet de créer des fichiers Outlook MSG de manière programmatique sans Microsoft Office.

Guide étape par étape

Étape 1 : Installer le package

pip install aspose-email-foss

Étape 2 : Créer un message

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

msg = MapiMessage.create("Meeting Notes", "Please review the attached notes.")

Étape 3 : Ajouter des destinataires

msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)

Utilisez les constantes entières RECIPIENT_TYPE_TO (1), RECIPIENT_TYPE_CC (2) ou RECIPIENT_TYPE_BCC (3) de aspose.email_foss.msg.


Étape 4 : Ajouter des pièces jointes

with open("notes.pdf", "rb") as f:
    msg.add_attachment("notes.pdf", f.read(), mime_type="application/pdf")

Pour intégrer un autre message MSG :

inner = MapiMessage.create("Forwarded", "Original message body")
msg.add_embedded_message_attachment(inner, filename="forwarded.msg", mime_type="application/vnd.ms-outlook")

Étape 5 : Enregistrer le fichier MSG

msg.save("output.msg")

Ou obtenir des octets pour le streaming :

data = msg.to_bytes()

Problèmes courants et solutions

Destinataires vides dans le fichier enregistré

Assurez-vous d’appeler add_recipient() avant save(). Les destinataires sont écrits pendant la sérialisation.

Pièce jointe non affichée dans Outlook

Vérifiez que le type MIME est correct. Utilisez "application/octet-stream" comme solution de secours pour les types de fichiers inconnus.


Foire aux questions (FAQ)

Puis-je définir le corps HTML ?

Oui. Utilisez msg.body_html = "value" pour définir le corps HTML après la création.

Puis-je convertir le MSG au format EML ?

Oui. Appelez msg.to_email_string() pour obtenir la représentation RFC 5322.

Taille maximale du message ?

Il n’y a pas de limite stricte. CFB v3 prend en charge les fichiers jusqu’à 2 Go ; v4 prend en charge des fichiers plus volumineux.

 Français