Cómo crear archivos MSG en Python
aspose-email-foss for Python te permite crear archivos Outlook MSG de forma programática sin Microsoft Office.
Guía paso a paso
Paso 1: Instalar el paquete
pip install aspose-email-fossPaso 2: Crear un mensaje
from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC
msg = MapiMessage.create("Meeting Notes", "Please review the attached notes.")Paso 3: Añadir destinatarios
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)Utilice las constantes enteras RECIPIENT_TYPE_TO (1), RECIPIENT_TYPE_CC (2) o RECIPIENT_TYPE_BCC (3) de aspose.email_foss.msg.
Paso 4: Añadir archivos adjuntos
with open("notes.pdf", "rb") as f:
msg.add_attachment("notes.pdf", f.read(), mime_type="application/pdf")Para incrustar otro mensaje MSG:
inner = MapiMessage.create("Forwarded", "Original message body")
msg.add_embedded_message_attachment(inner, filename="forwarded.msg", mime_type="application/vnd.ms-outlook")Paso 5: Guardar el archivo MSG
msg.save("output.msg")O obtener bytes para transmisión:
data = msg.to_bytes()Problemas comunes y soluciones
Destinatarios vacíos en el archivo guardado
Asegúrese de llamar add_recipient() antes de save(). Los destinatarios se escriben durante la serialización.
Adjunto no se muestra en Outlook
Verifique que el tipo MIME sea correcto. Use "application/octet-stream" como alternativa para tipos de archivo desconocidos.
Preguntas Frecuentes (FAQ)
¿Puedo establecer el cuerpo HTML?
Sí. Use msg.body_html = "value" para establecer el cuerpo HTML después de la creación.
¿Puedo convertir el MSG al formato EML?
Sí. Llame msg.to_email_string() para obtener la representación RFC 5322.
¿Tamaño máximo del mensaje?
No hay un límite estricto. CFB v3 admite archivos de hasta 2 GB; v4 admite archivos más grandes.