Cara Memulai dengan FOSS untuk Python
aspose-email-foss Python adalah sebuah perpustakaan gratis yang berlisensi MIT untuk membuat, membaca dan mengedit. Konversi file dan kontainer CFB Outlook - tidak diperlukan Microsoft Office, tidak ada native Extension, yaitu Python dari PyPI.
Panduan Langkah-demi-Langkah
Langkah 1: Instal Paket
Cara menginstal dari PyPI dengan pip:
pip install aspose-email-fossPeriksa instalasi yang telah diisi dengan benar:
from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")Langkah 2: Import kelas yang diperlukan
Impor modul yang Anda butuhkan untuk membuat pesan, atribut, dan konversi format:
from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyIdLangkah 3: Buat file yang
Menggunakan MapiMessage.create() Untuk membuat pesan dengan subjek dan tubuh.Set sender metadata dengan PropertyId Konstan, tambahkan penerima dan lampirkan file.
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 kembali file
Mengisi file yang disimpan menggunakan MapiMessage.from_file() sebagai pengelola konteks. akses ke subject dan body Properti yang dikembalikan langsung dari objek.
with MapiMessage.from_file("getting-started.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body : {message.body}")Langkah 5: Mengubah fungsi dari
to_email_bytes() mengkonversi pesan yang diunggah ke format RFC 5322. tulis hasilnya ke a) A .eml File dengan perpustakaan standar.
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.")Masalah umum dan fixes
ModuleNotFoundError: No module named 'aspose' Paket ini tidak diinstal dalam lingkungan Python aktif. pip install aspose-email-foss dalam lingkungan virtual yang sama yang Anda gunakan untuk menjalankan script. pip show aspose-email-foss.
FileNotFoundError Ketika memanggil MapiMessage.from_file() Jalan yang Anda lalui tidak ada atau menggunakan pemisah yang salah untuk OS Anda. pathlib.Path Untuk membuat jalur portabel: MapiMessage.from_file(Path("folder") / "file.msg").
File MSG dibuka di Outlook tetapi tidak menampilkan subjek MapiMessage.create() menganggap subjek sebagai argumen posisi pertama. jika Anda melewati string kosong, Outlook menampilkan pesan sebagai tidak berjudul. Secara eksplisit dengan set_property(PropertyId.SUBJECT, "My Subject").
Konversi menghasilkan tubuh kosong to_email_bytes() Menggunakan body_html Jika ditentukan, dan jatuh kembali ke body.Menegaskan bahwa pada setidaknya satu dari properti ini tidak kosong setelah mengisi MSG dengan from_file().
Konten Unicode di penerima atau subjek dipotong Pasal unicode_strings=True Dua MapiMessage.create() Untuk memastikan bahwa properti yang disimpan dalam Unicode (PT_UNICODE) dan bukan ANSI (pt_STRING8).
Pertanyaan yang Sering Diajukan
Apakah Microsoft Office diperlukan?
Buku ini membaca dan menulis format biner MSG dan CFB secara natif dalam Python tanpa ketergantungan apapun pada Microsoft Office, otomatisasi COM, atau Win32 API.
Apakah saya dapat menggunakan pustaka ini di Linux atau macOS?
ya ya. aspose-email-foss adalah Python murni dan berjalan pada platform mana pun yang mendukung Python 3.10 atau yang lebih baru, termasuk Windows, macOS, Linux, Docker dan fungsi tanpa server.
Apakah perpustakaan ini gratis untuk digunakan secara komersial?
Ya. itu dirilis di bawah Lisensi MIT. Anda dapat menggunakannya, memodifikasi dan mendistribusikannya untuk tujuan apa pun, termasuk aplikasi komersial, tanpa biaya royalti atau persyaratan atribusi di luar teks lisensa.
Bagaimana saya menambahkan penerima CC dan BCC?
Pasal 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 bisa memasukkan satu MSG ke dalam yang lain?
Menggunakan MapiMessage.add_embedded_message_attachment(),Melalui interior yang 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")