Bagaimana untuk mula menggunakan FOSS untuk Python

Bagaimana untuk mula menggunakan FOSS untuk Python

aspose-email-foss for Python ialah perpustakaan percuma yang dilesenkan oleh MIT untuk mencipta, membaca dan mengedit. menukar fail Outlook MSG dan wadah CFB — tiada Microsoft Office diperlukan, tidak ada asli Perbezaan Python daripada PyPI.

Panduan Langkah demi Langkah

Langkah 1: Pasang Pakej

Menginstal daripada PyPI dengan pip:

pip install aspose-email-foss

Pastikan instalasi telah diisi dengan betul:

from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")

Langkah 2: Import Kelas yang diperlukan

Import modul yang anda perlukan untuk penciptaan mesej, pengagihan sifat dan pemindahan format:

from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyId

Langkah 3: Mencipta fail yang boleh digunakan

digunakan MapiMessage.create() untuk membina mesej dengan subjek dan badan. Set metadata penghantar dengan PropertyId Menggunakan konstan, menambah penerima dan melampirkan fail.

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.")

Langkah 4: Baca fail semula

Masukkan fail yang disimpan menggunakan MapiMessage.from_file() sebagai pengurus konteks. akses kepada subject dan body harta benda yang dikembalikan.

with MapiMessage.from_file("getting-started.msg") as message:
    print(f"Subject: {message.subject}")
    print(f"Body   : {message.body}")

Langkah 5 : Mengubah fungsi ke dalam

to_email_bytes() menukar mesej yang dimuat naik ke format RFC 5322. Tulis hasil kepada a .eml fail dengan perpustakaan 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.")

Isu Umum dan Penyelesaian

ModuleNotFoundError: No module named 'aspose' Paket ini tidak dipasang dalam persekitaran Python aktif. pip install aspose-email-foss dalam persekitaran maya yang sama yang anda gunakan untuk menjalankan skrip. mengesahkan dengan pip show aspose-email-foss.

FileNotFoundError Apabila memanggil MapiMessage.from_file() Laluan yang anda lalui tidak wujud atau menggunakan pemisah yang salah untuk OS anda. pathlib.Path Untuk membuat laluan portable: MapiMessage.from_file(Path("folder") / "file.msg").

Fail MSG dibuka dalam Outlook tetapi tidak menunjukkan subjek MapiMessage.create() menganggap subjek sebagai argumen kedudukan pertama. jika anda lulus satu string kosong, Outlook memaparkan mesej sebagai tanpa tajuk.Letakkan string yang tidak kosong atau tetapkan ia secara eksplisit dengan set_property(PropertyId.SUBJECT, "My Subject").

EML penukaran menghasilkan badan kosong to_email_bytes() digunakan body_html Jika ditentukan, dan jatuh semula kepada body.Mengesahkan bahawa di Sekurang-kurangnya satu daripada ciri-ciri ini tidak kosong selepas muat turun MSG dengan from_file().

Kandungan Unicode dalam penerima atau subjek dipotong PASS unicode_strings=True 2 buah MapiMessage.create() Untuk memastikan sifat-sifat yang mempunyai disimpan dalam Unicode (PT_UNICODE) dan bukannya ANSI (pt_STRING8).

Soalan Lazim

Adakah aspose-email-foss memerlukan Microsoft Office?

Ia membaca dan menulis format binari MSG dan CFB secara asli dalam Python tanpa sebarang ketergantungan kepada Microsoft Office, automatik COM atau Win32 API.

Bolehkah saya menggunakan pustaka ini pada Linux atau macOS?

ya lah. aspose-email-foss Python ialah platform yang menyokong semua platform dan mempunyai sokongan untuk Python 3.10. atau lebih baru – termasuk Windows, macOS, Linux, Docker dan fungsi tanpa server.

Adakah perpustakaan ini percuma untuk kegunaan komersial?

Ia dikeluarkan di bawah lesen MIT. anda boleh menggunakan, mengubah dan mendistribusikannya untuk apa-apa tujuan, termasuk aplikasi komersial, tanpa royalti atau keperluan pengiktirafan melebihi teks lesen.

Bagaimana saya menambah penerima CC dan BCC?

PASS recipient_type=msg.RECIPIENT_TYPE_CC atau msg.RECIPIENT_TYPE_BCC Sebagai yang ketiga Argumen untuk add_recipient():

message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)

Bagaimana saya boleh memasukkan satu MSG dalam yang lain?

digunakan MapiMessage.add_embedded_message_attachment(),Melalui kawasan dalaman MapiMessage Argumen sebagai argumen pertama:

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")

juga

 Bahasa Melayu