Come creare file MSG in Python

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-foss

Passo 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.

 Italiano