Как да започнете с Aspose.Email FOSS за Python

Как да започнете с 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")

Виж също

 Български