Jak začít s Aspose.Email FOSS pro Python
aspose-email-foss Python je zdarma dostupná knihovna pro tvorbu, čtení a konverze souborů a kontejnerů CFB v Outlooku - není vyžadován Microsoft Office, není nutné nativní Rozšíření Python z Pypi.
Krok za krokem průvodce
Krok 1: Nainstalujte balíček
Instalace z PIP s pipem:
pip install aspose-email-fossZkontrolujte, zda je instalace správně nainstalována:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Krok 2: Požadované třídy importů
Import modulů potřebných pro vytváření zpráv, přiřazení vlastností a konverzi formátů:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdKrok 3: Vytvoření souboru MSG
Použijte MapiMessage.create() Vytvořit zprávu s předmětem a tělem.Nastavení metadat odesílatele s PropertyId Přidejte přijímače a připojte soubor.
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.")Krok 4: Přečtěte si soubor Zpět
Uložit uložený soubor pomocí MapiMessage.from_file() jako kontextový manažer. přístup k subject a body Vlastnosti přímo z vráceného objektu.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Krok 5: Převést MSG na EML
to_email_bytes() konvertuje nahranou zprávu na formát RFC 5322. A .eml Soubor se standardní knihovnou.
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.")Časté problémy a opravy
ModuleNotFoundError: No module named 'aspose' Tento balíček není nainstalován v aktivním prostředí Python. pip install aspose-email-foss ve stejném virtuálním prostředí, které používáte k spuštění skriptů. pip show aspose-email-foss.
FileNotFoundError Když voláte MapiMessage.from_file() Cesta, kterou jste prošli neexistuje nebo používá nesprávný separátor pro váš OS. pathlib.Path Pro přenosné cesty: MapiMessage.from_file(Path("folder") / "file.msg").
Soubor MSG se otevře v Outlooku, ale nezobrazí předmět MapiMessage.create() přijímá předmět jako první poziční argument. Pokud jste prošli prázdný řetěz, Outlook zobrazí zprávu jako bez názvu. Přeposlat nepražený řetízek nebo nastavit jej Výslovně s set_property(PropertyId.SUBJECT, "My Subject").
EML konverze produkuje prázdné tělo to_email_bytes() Používá se body_html Pokud se to podaří, a spadne zpět do body.Potvrďte, že na alespoň jedna z těchto vlastností není prázdná po načtení MSG s from_file().
Unicode obsah v příjemcích nebo předmětu je zkrácen Passováno unicode_strings=True Těmto MapiMessage.create() Aby se zajistilo, že příslušenství je Ukládá se v Unicode (PT_UNICODE) a nikoli ANSI (pt_STRING8).
Často kladené otázky
Potřebuje Microsoft Office pro e-mailové schránky?
Knižnice je zcela samoobslužná. čte a píše binární formáty MSG a CFB nativně v Pythonu bez jakékoli závislosti na Microsoft Office, COM automatizaci nebo Win32 API.
Mohu tuto knihovnu používat v systému Linux nebo macOS?
Ano ano . aspose-email-foss Je čistý Python a běží na jakékoliv platformě, která podporuje Python 3.10 nebo novější – včetně Windows, macOS, Linuxu, kontejnerů Docker a funkcí bez serveru.
Je knihovna zdarma pro komerční využití?
Je vydán pod licencí MIT. Můžete jej používat, upravovat a přerozdělovat pro jakýkoli účel, včetně komerčních aplikací, bez poplatků za autorské právo nebo požadavků na přiřazení nad rámec textu licence.
Jak přidat CC a BCC přijímače?
Passováno recipient_type=msg.RECIPIENT_TYPE_CC nebo msg.RECIPIENT_TYPE_BCC Jako třetí Argumenty pro add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Jak se dá jeden vnitřek do druhého vložit?
Použijte MapiMessage.add_embedded_message_attachment(),Procházíme vnitřním MapiMessage Objekt jako první argument:
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")