Come creare file MSG in Python
aspose-email-foss for Python ti consente di creare file Outlook MSG programmaticamente senza Microsoft Office.
Guida passo-passo
Passo 1: Installa il pacchetto
pip install aspose-email-fossPasso 2: Crea un messaggio
from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC
msg = MapiMessage.create("Meeting Notes", "Please review the attached notes.")Passo 3: Aggiungi destinatari
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)Usa le costanti intere RECIPIENT_TYPE_TO (1), RECIPIENT_TYPE_CC (2) o RECIPIENT_TYPE_BCC (3) da aspose.email_foss.msg.
Passo 4: Aggiungi allegati
with open("notes.pdf", "rb") as f:
msg.add_attachment("notes.pdf", f.read(), mime_type="application/pdf")Per incorporare un altro messaggio MSG:
inner = MapiMessage.create("Forwarded", "Original message body")
msg.add_embedded_message_attachment(inner, filename="forwarded.msg", mime_type="application/vnd.ms-outlook")Passo 5: Salva il file MSG
msg.save("output.msg")Oppure ottieni i byte per lo streaming:
data = msg.to_bytes()Problemi comuni e soluzioni
Destinatari vuoti nel file salvato
Assicurati di chiamare add_recipient() prima di save(). I destinatari vengono scritti durante la serializzazione.
Allegato non visualizzato in Outlook
Verifica che il tipo MIME sia corretto. Usa "application/octet-stream" come fallback per i tipi di file sconosciuti.
Domande frequenti (FAQ)
Posso impostare il corpo HTML?
Sì. Usa msg.body_html = "value" per impostare il corpo HTML dopo la creazione.
Posso convertire il MSG in formato EML?
Sì. Chiama msg.to_email_string() per ottenere la rappresentazione RFC 5322.
Dimensione massima del messaggio?
Non c’è un limite rigido. CFB v3 supporta file fino a 2 GB; v4 supporta file più grandi.