Como criar arquivos MSG em Python

Como criar arquivos MSG em Python

aspose-email-foss for Python permite que você crie arquivos Outlook MSG programaticamente sem o Microsoft Office.

Guia passo a passo

Etapa 1: Instalar o Pacote

pip install aspose-email-foss

Etapa 2: Criar uma Mensagem

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

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

Etapa 3: Adicionar destinatários

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)

Use as constantes inteiras RECIPIENT_TYPE_TO (1), RECIPIENT_TYPE_CC (2) ou RECIPIENT_TYPE_BCC (3) de aspose.email_foss.msg.


Etapa 4: Adicionar anexos

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

Para incorporar outra mensagem MSG:

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

Etapa 5: Salvar o arquivo MSG

msg.save("output.msg")

Ou obtenha bytes para streaming:

data = msg.to_bytes()

Problemas Comuns e Soluções

Destinatários vazios no arquivo salvo

Certifique‑se de chamar add_recipient() antes de save(). Os destinatários são gravados durante a serialização.

Anexo não aparece no Outlook

Verifique se o tipo MIME está correto. Use "application/octet-stream" como fallback para tipos de arquivo desconhecidos.


Perguntas Frequentes (FAQ)

Posso definir o corpo HTML?

Sim. Use msg.body_html = "value" para definir o corpo HTML após a criação.

Posso converter o MSG para o formato EML?

Sim. Chame msg.to_email_string() para obter a representação RFC 5322.

Tamanho máximo da mensagem?

Não há limite rígido. O CFB v3 suporta arquivos de até 2 GB; v4 suporta arquivos maiores.

 Português