Jak zacząć z Aspose.Email FOSS dla Pythona
aspose-email-foss Python to darmowa biblioteka licencjonowana przez MIT do tworzenia, czytania i Konwersja plików programu Outlook MSG i kontenerów CFB – nie wymagane jest Microsoft Office, nie ma oryginalnych Rozszerzenia, czysty Python z PyPI.
Przewodnik krok po kroku
Krok 1: Instalacja pakietu
Instalacja z PIPP:
pip install aspose-email-fossSprawdź, czy instalacja jest prawidłowo ładowana:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Krok 2: Import wymaganych klas
Importować moduły, które potrzebujesz do tworzenia wiadomości, przydzielania właściwości i konwersji formatów:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdKrok 3: Tworzenie pliku MSG
Używanie MapiMessage.create() aby zbudować wiadomość z tematem i ciałem. ustawić metadane wysłannika z PropertyId stałe, dodać odbiorców i przyłączyć plik.
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: Przeczytaj plik MSG z powrotem
Pobierz zapisany plik za pomocą MapiMessage.from_file() jako menedżer kontekstu. dostęp do subject i body Właściwości bezpośrednio z powrotnego przedmiotu.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Krok 5: Konwertuj MSG na EML
to_email_bytes() Konwertuje przesłanie do formatu RFC 5322 . A .eml Zestaw z biblioteką standardową.
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.")Wspólne problemy i rozwiązania
ModuleNotFoundError: No module named 'aspose' Pakiet nie jest zainstalowany w aktywnym środowisku Python. pip install aspose-email-foss w tym samym środowisku wirtualnym, które używasz do uruchomienia skryptów. potwierdź pip show aspose-email-foss.
FileNotFoundError Kiedy zadzwonić MapiMessage.from_file() Droga, którą przeszedłeś nie istnieje lub używa błędnego oddzielnika dla systemu operacyjnego. pathlib.Path W celu budowania dróg przenośnych: MapiMessage.from_file(Path("folder") / "file.msg").
Plik MSG otwiera się w programie Outlook, ale nie wyświetla żadnego tematu MapiMessage.create() akceptuje temat jako pierwszy argument pozycjonalny. jeśli przeszedł w pustym pasku, Outlook wyświetla wiadomość jako nieznanego. przejść pasek niepustny lub ustawić go Wyraźnie z set_property(PropertyId.SUBJECT, "My Subject").
Konwersja EML wytwarza puste ciało to_email_bytes() Używanie body_html Jeśli się rozstaje i spadnie z powrotem do body.Potwierdza to, że w co najmniej jedna z tych właściwości jest niepustna po załadowaniu MSG z from_file().
Unicode zawartość w odbiorcach lub przedmiot jest zepsute paszport unicode_strings=True do MapiMessage.create() Aby zapewnić właściwości strumieniowe, są Został on przechowywany w Unicode (PT_UNICODE) zamiast ANSI ( PT_STRING8).
Często zadawane pytania
Czy e-mail-foss wymaga Microsoft Office?
Biblioteka jest w pełni samodzielnie zawarta. czyta i pisze formaty binarne MSG i CFB native w Python bez uzależnienia od Microsoft Office, COM automatyzacji lub Win32 APIs.
Czy mogę korzystać z biblioteki na Linuxie lub macOS?
Tak i tak. aspose-email-foss Jest to czysty Python i działa na każdej platformie, która obsługuje Pythona 3.10. lub później – w tym Windows, macOS, Linux, konta Docker i funkcje bezserwera.
Czy biblioteka jest wolna do użytku komercyjnego?
Możesz używać, modyfikować i przekazywać go do jakiegokolwiek celu, w tym aplikacji komercyjnych, bez roszczeń lub wymogów przyznania poza tekstem licencji.
Jak dodać CC i BCC odbiorców?
paszport recipient_type=msg.RECIPIENT_TYPE_CC lub msg.RECIPIENT_TYPE_BCC jako trzecia Argument do add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Jak wstawić jeden MSG do drugiego?
Używanie MapiMessage.add_embedded_message_attachment(),Przez wewnętrzną MapiMessage Obiekt jako pierwszy 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")