Как да започнете с Aspose.Email FOSS за Python
aspose-email-foss за Python е безплатна, лицензирана библиотека от MIT за създаване, четене и Конвертиране на файловете MSG и контейнерите CFB в Outlook — няма изискване за Microsoft Office, няма оригинални Пътен Python от PyPI.
Стъпка по стъпка ръководство
Стъпка 1: Инсталирайте пакета
Изтегляне на пип с пипа:
pip install aspose-email-fossПроверете инсталацията, която е заредена правилно:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Стъпка 2: Внос на необходимите класове
Вмъкнете модулите, от които се нуждаете за създаване на съобщения, задаване и конвертиране на формати:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdСтъпка 3: Създаване на MSG файл
Използване MapiMessage.create() да създадете съобщение с тема и тяло.Настройки на метаданни за изпращане с PropertyId константи, добавете получатели и прикрепете файл.
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.")Стъпка 4: Прочетете файла MSG обратно
Изтеглете съхранения файл с помощта на MapiMessage.from_file() като мениджър на контекста. достъп до subject и body - Собственост директно от върнатия обект.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Стъпка 5: Конвертирайте MSG в EML
to_email_bytes() преобразува зареденото съобщение в формат RFC 5322 . А .eml Съдържание на стандартната библиотека.
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.")Общи проблеми и фиксиране
ModuleNotFoundError: No module named 'aspose' Пакетът не е инсталиран в активната Python среда. pip install aspose-email-foss в същата виртуална среда, която използвате за изпълнение на вашия скрипт. потвърдете с pip show aspose-email-foss.
FileNotFoundError Когато се обажда MapiMessage.from_file() Пътят, който сте преминали не съществува или използва грешния разделител за вашия ОС. pathlib.Path За изграждане на пътища портално: MapiMessage.from_file(Path("folder") / "file.msg").
Файлът MSG се отваря в Outlook, но не показва тема MapiMessage.create() Приемате темата като първи позитивен аргумент. ако сте преминали през празен ред, Outlook показва съобщението като без заглавие. преминаване на непразен редица или го задайте Изрично с set_property(PropertyId.SUBJECT, "My Subject").
EML конверсията произвежда празен организъм to_email_bytes() Използване body_html Ако се върне и падне обратно, body.потвърждава, че в най-малко една от тези свойства е непразна след зареждане на MSG с from_file().
Съдържанието на Unicode в получателите или предмета е изкривено Пасошът unicode_strings=True за MapiMessage.create() За да се гарантира, че свойствата на стрийминг са Съхранява се в Unicode (PT_UNICODE) вместо ANSI ( PT_STRING8).
Често задавани въпроси
Дали асистентът на имейла изисква Microsoft Office?
Библиотеката е напълно самостоятелно съдържаща. чете и пише двоичните формати MSG и CFB родени в Python без каквато и да било зависимост от Microsoft Office, COM автоматизация или Win32 API.
Мога ли да използвам тази библиотека на Linux или macOS?
Да е. aspose-email-foss Пътят е чист и работи на всяка платформа, която поддържа Python 3.10. или по-късно – включително Windows, macOS, Linux, Docker контейнери и безсервърни функции.
Библиотеката е свободна за търговско ползване.?
Можете да го използвате, модифицирате и преразпределите за всяка цел, включително търговски приложения, без изисквания за роялти или присъждане извън текста на лиценза.
Как да добавям CC и BCC получатели?
Пасошът recipient_type=msg.RECIPIENT_TYPE_CC или msg.RECIPIENT_TYPE_BCC Като трето аргумент за add_recipient():
message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)Как да вмъкнем един MSG вътре в друг?
Използване MapiMessage.add_embedded_message_attachment(),Преминавайки през вътрешността MapiMessage Заглавието като първи аргумент:
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")