Com començar a utilitzar el FOSS per Python
aspose-email-foss Python és una biblioteca lliure i llicenciada per MIT per crear, llegir i utilitzar el llenguatge. Convertir fitxers i contenidors de CFB d’Outlook - no es requereix Microsoft Office, no hi ha nadius Extensions, pur Python de PyPI.
Guia de pas per pas
Pas 1: Instal·la el paquet
Instal·lació de PyPI amb pip:
pip install aspose-email-fossComproveu que la instal·lació es carregui correctament:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Pas 2: Importar classes necessàries
Importar els mòduls necessaris per a la creació de missatges, l’assignació d’actius i la conversió de formats:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdPas 3: Creació d’un arxiu
utilitzar MapiMessage.create() per crear un missatge amb un tema i un cos. Establir metadades de l’enviador amb PropertyId Constants, afegir destinataris i adjuntar un arxiu.
message = MapiMessage.create("Getting Started", "Hello from aspose-email-foss!")
message.set_property(PropertyId.SENDER_NAME, "Build Agent")
message.set_property(PropertyId.SENDER_EMAIL_ADDRESS, "agent@example.com")
message.set_property(
PropertyId.MESSAGE_DELIVERY_TIME,
datetime(2026, 1, 1, 9, 0, tzinfo=timezone.utc),
)
message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_attachment("notes.txt", b"Meeting notes go here.\n", mime_type="text/plain")
message.save("getting-started.msg")
print("getting-started.msg written.")Pas 4: Llegir el fitxer de tornada
Carregar el fitxer guardat utilitzant MapiMessage.from_file() Com a gestor de context. accés al subject i body Propietats directament del producte retornat.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Pas 5: Convertir el MSG a EML
to_email_bytes() converteix el missatge carregat al format RFC 5322. Escriu el resultat a a .eml Arxiu amb la biblioteca estàndard.
from pathlib import Path
with MapiMessage.from_file("getting-started.msg") as message:
Path("getting-started.eml").write_bytes(message.to_email_bytes())
print("getting-started.eml written.")Problemes comuns i solucions
ModuleNotFoundError: No module named 'aspose' El paquet no està instal·lat en l’entorn actiu de Python. pip install aspose-email-foss en el mateix entorn virtual que utilitzeu per executar el vostre guió. pip show aspose-email-foss.
FileNotFoundError Quan truqueu MapiMessage.from_file() El camí que has passat no existeix o utilitza el separador incorrecte per al teu sistema operatiu. pathlib.Path Per fer els camins de forma portable: MapiMessage.from_file(Path("folder") / "file.msg").
El fitxer MSG s’obre a Outlook però no mostra cap tema MapiMessage.create() accepta el tema com a primer argument posicional. Si has passat Un codi de cadena buit, Outlook mostra el missatge com sense títol. Passar una cadena no buida o configurar-lo Explicitament amb set_property(PropertyId.SUBJECT, "My Subject").
EML conversió produeix un cos buit to_email_bytes() utilitzant body_html Si es troba i torna a caure body.Confirmen que a almenys una d’aquestes propietats no està buida després de carregar el MSG amb un from_file().
El contingut de l’Unicode en els destinataris o el tema es truncà. Passatge unicode_strings=True Dos MapiMessage.create() Per garantir que les propietats de la cadena siguin Es va emmagatzemar en Unicode (PT_UNICODE) en comptes d’ANSI (pt_STRING8).
Preguntes freqüents
El sistema de correu electrònic requereix Microsoft Office?
La biblioteca és totalment autònom.Llegeix i escriu els formats binaris MSG i CFB nativament en Python sense cap dependència de Microsoft Office, automatització COM o Win32 API.
Puc utilitzar aquesta biblioteca en Linux o macOS?
Sí sí. aspose-email-foss És un programa de Python que funciona en qualsevol plataforma que tingui suport per a Pythons 3.10. o posterior, incloent Windows, macOS, Linux, contenidors Docker i funcions sense servidor.
La biblioteca és lliure per a ús comercial?
Es publica sota la Llicència MIT. Podeu utilitzar, modificar i redistribuir-la per a qualsevol propòsit, incloses les aplicacions comercials, sense necessitat de royalties ni requisits d’atribució més enllà del text de la llicències.
Com puc afegir els receptors CC i BCC?
Passatge recipient_type=msg.RECIPIENT_TYPE_CC o msg.RECIPIENT_TYPE_BCC Com el tercer Argumentar per add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Com puc posar un d’ells dins l’altre?
utilitzar MapiMessage.add_embedded_message_attachment(),Passant per l’interior MapiMessage El primer argument és:
inner = MapiMessage.create("Inner message", "Embedded body.")
outer = MapiMessage.create("Outer message", "See attachment.")
outer.add_embedded_message_attachment(inner, "inner.msg")
outer.save("outer.msg")