Buat dan Atur File PST dalam Python
Buat File PST Baru dan Tambahkan Subfolder
Aspose.Email menyediakan fungsionalitas untuk membuat file Personal Storage Table (PST) dari awal dan menambahkan subfolder ke dalamnya. Dengan PersonalStorage kelas, Anda dapat mengelola operasi terkait file PST, yang menyimpan pesan email, acara kalender, kontak, dan data lainnya.
Contoh kode berikut menunjukkan cara membuat file penyimpanan baru dan menambahkan folder "Inbox" ke dalamnya:
- Gunakan PersonalStorage.create metode untuk menghasilkan file PST baru dengan direktori yang ditentukan. File dibuat menggunakan
UNICODEformat untuk kompatibilitas dengan aplikasi modern. - Akses folder akar file PST dan tambahkan subfolder baru bernama "Inbox" untuk mengatur pesan email.
Pemeriksaan Kesesuaian Kelas Kontainer
Aspose.Email untuk Python menawarkan solusi yang meningkatkan proses validasi saat pembuatan folder dalam file PST. Dengan properti enforce_container_class_matching dari FolderCreationOptions kelas, Anda dapat memastikan pencocokan ketat kelas kontainer saat menambahkan folder baru ke penyimpanan PST. Fitur ini membantu memelihara hierarki organisasi dalam file PST dengan mencegah ketidakcocokan kelas kontainer. Dengan mengatur ‘EnforceContainerClassMatching’ ke ’true’, pengecualian akan dilempar jika kelas kontainer folder induk dan anak tidak cocok, memberikan perlindungan terhadap struktur folder yang salah. Perilaku default properti ini adalah ‘false’, memungkinkan fleksibilitas dalam pembuatan folder sambil memberi Anda kemampuan untuk menegakkan pencocokan kelas kontainer yang ketat bila diperlukan.
Contoh kode berikut menunjukkan penggunaan properti enforce_container_class_matching untuk mengendalikan apakah pengecualian harus dilempar ketika menambahkan folder dengan kelas kontainer yang tidak cocok:
with PersonalStorage.create("storage.pst", FileFormatVersion.Unicode) as pst:
contacts = pst.createpredefinedfolder("Contacts", StandardIpmFolder.Contacts)
# An exception will not arise. EnforceContainerClassMatching is False by default.
contacts.addsubfolder("Subfolder1", "IPF.Note")
# An exception will occur as the container class of the subfolder being added (IPF.Note)
# does not match the container class of the parent folder (IPF.Contact).
contacts.addsubfolder("Subfolder3", FolderCreationOptions(enforcecontainerclassmatching=True, containerclass="IPF.Note"))
Mengubah Kelas Kontainer Folder
Kadang diperlukan untuk mengubah kelas folder. Contoh umum adalah ketika pesan dengan tipe berbeda (janji, pesan, dll.) ditambahkan ke folder yang sama. Dalam kasus tersebut, kelas folder perlu diubah untuk semua elemen dalam folder agar tampil dengan benar. Potongan kode berikut menunjukkan cara mengubah kelas kontainer folder dalam PST untuk tujuan ini:
Tambahkan Pesan Bulk dengan Kinerja yang Ditingkatkan
Menambahkan pesan secara massal ke file PST dibandingkan menambahkannya satu per satu dapat menawarkan beberapa keuntungan, terutama dalam hal efisiensi dan kinerja: operasi I/O lebih sedikit, waktu penyelesaian tugas berkurang, sumber daya sistem lebih efisien digunakan, dll. Metode add_messages dari FolderInfo kelas digunakan untuk mentransfer koleksi pesan MAPI yang diperoleh dari folder sumber ke folder tujuan.
Tambah Pesan dari PST Lain
Untuk mendaftar dan mengambil semua pesan MAPI dari folder sumber sebuah file PST, gunakan metode enumerate_mapi_messages() dari FolderInfo kelas. Kemudian, tambahkan pesan-pesan ini ke folder tujuan dari file PST lain.
import aspose.email as ae
src_pst = ae.storage.pst.PersonalStorage.from_file("source.pst", False)
dest_pst = ae.storage.pst.PersonalStorage.from_file("destination.pst")
# Get the folder by name
src_folder = src_pst.root_folder.get_sub_folder("SomeFolder")
dest_folder = dest_pst.root_folder.get_sub_folder("SomeFolder")
dest_folder.add_messages(src_folder.enumerate_mapi_messages())
Tambah Pesan dari Direktori
Untuk menambahkan pesan dari direktori, setelah file dibuka dan referensi ke folder tertentu dalam file PST diperoleh, ambil daftar nama file dari direktori yang ditentukan oleh variabel "path" dan buat daftar MSG kosong untuk memuat setiap file sebagai MapiMessage. Tambahkan setiap pesan yang dimuat ke msg_list. Contoh kode di bawah menunjukkan proses menambahkan pesan dari direktori:
import aspose.email as ae
import os
pst = ae.storage.pst.PersonalStorage.from_file("my.pst", False)
# Get the folder by name
folder = pst.root_folder.get_sub_folder("SomeFolder")
dirs = os.listdir("path")
msg_list = []
for file in dirs:
msg = ae.mapi.MapiMessage.load(file)
msg_list.append(msg)
folder.add_messages(iter(msg_list))