Come iniziare con Aspose.Email FOSS per Python
aspose-email-foss Python è una libreria gratuita e con licenza MIT per creare, leggere e utilizzare i contenuti. Convertire file e contenitori di CFB in Outlook - nessun Microsoft Office richiesto, nessuna nativa Extensions, Python puro da PyPI.
Guida passo passo
Passo 1: installare il pacchetto
Installazione da PyPI con pip:
pip install aspose-email-fossVerificare che l’installazione sia stata caricata correttamente:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Passo 2: Importazione delle classi richieste
Importare i moduli necessari per la creazione di messaggi, l’assegnazione delle proprietà e la conversione del formato:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdPasso 3: Creare un file di ricerca
utilizzo MapiMessage.create() per creare un messaggio con un oggetto e un corpo. Imposta metadati del mittente con PropertyId Contiene i file, aggiunge ricevitori e collega un file.
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.")Passo 4: Leggi il file Back
Caricare il file salvato utilizzando MapiMessage.from_file() come gestore di contesti. Accesso al subject e body Proprietà direttamente dall’oggetto restituito.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Passo 5: Convertire il MSG in EML
to_email_bytes() Converti il messaggio caricato in formato RFC 5322. Scrivere il risultato a a .eml File con la biblioteca standard.
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.")Problemi comuni e risoluzioni
ModuleNotFoundError: No module named 'aspose' Il pacchetto non è installato nell’ambiente Python attivo. pip install aspose-email-foss nel medesimo ambiente virtuale che stai utilizzando per eseguire il tuo script. pip show aspose-email-foss.
FileNotFoundError Quando si chiama MapiMessage.from_file() Il percorso che hai superato non esiste o utilizza il separatore sbagliato per il tuo sistema operativo. pathlib.Path Per costruire percorsi portabili: MapiMessage.from_file(Path("folder") / "file.msg").
Il file MSG si apre in Outlook ma non mostra alcun argomento MapiMessage.create() accetta il soggetto come primo argomento posizionale. Se hai superato una stringa vuota, Outlook visualizza il messaggio come non intitolato. Passare una stringatura non vuoto o impostarla Esplicitamente con set_property(PropertyId.SUBJECT, "My Subject").
EML conversione produce un corpo vuoto to_email_bytes() utilizzo body_html Se si è rialzato e si ritorna a body.Conferma che al almeno una di queste proprietà non è vuota dopo aver caricato il MSG con from_file().
Il contenuto Unicode nei destinatari o nel soggetto è truncato Passaggio unicode_strings=True due MapiMessage.create() Per garantire che le proprietà string siano Il codice è stato memorizzato in Unicode (PT_UNICODE) piuttosto che ANSI (pt_STRING8).
Domande frequenti
Il software di Microsoft Office è necessario?
La libreria è completamente autogestita. Legge e scrive i formati binari MSG e CFB in Python senza alcuna dipendenza da Microsoft Office, COM automation o Win32 API.
Posso utilizzare questa libreria su Linux o macOS?
sì sì. aspose-email-foss è puro Python e funziona su qualsiasi piattaforma che supporta Python 3.10 o successive, inclusi Windows, macOS, Linux, contenitori Docker e funzioni senza server.
La biblioteca è libera per uso commerciale?
Si rilascia sotto la Licenza MIT. Puoi usarlo, modificarlo e ridistribuirlo per qualsiasi scopo, comprese le applicazioni commerciali, senza diritti d’autore o requisiti di attribuzione oltre il testo della licenza.
Come aggiungere i ricevitori CC e BCC?
Passaggio recipient_type=msg.RECIPIENT_TYPE_CC o msg.RECIPIENT_TYPE_BCC Come il terzo Argomento di add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Come si fa a inserire un’altra in un altro?
utilizzo MapiMessage.add_embedded_message_attachment(),Passando il nostro interno MapiMessage Il primo argomento è:
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")