Bekerja dengan Pesan di File PST
Tambahkan Pesan ke File PST Outlook
Tambahkan Satu Pesan ke File PST
Buat File PST Baru dan Tambahkan Subfolder menunjukkan cara membuat file PST dan menambahkan subfolder ke dalamnya. Dengan Aspose.Email Anda juga dapat menambahkan pesan ke subfolder dari file PST yang telah Anda buat atau muat. Contoh kode di bawah ini menunjukkan cara membuat file PST baru, menambahkan folder "Inbox", dan kemudian menambahkan pesan ke folder tersebut. PersonalStorage dan FolderInfo kelas digunakan untuk melakukan tugas tersebut.
- Gunakan PersonalStorage.create metode untuk memulai file PST baru dengan menentukan jalur file dan versi format file sebagai Unicode.
- Buat folder baru bernama "Inbox" di direktori akar file PST.
- Tambahkan pesan ke folder "Inbox" yang baru dibuat menggunakan add_message metode.
- Muat pesan menggunakan MapiMessage.load.
pst = PersonalStorage.create(dataDir + "AddMessagesToPst_out.pst", FileFormatVersion.UNICODE)
# Add new folder "Inbox"
inboxFolder = pst.root_folder.add_sub_folder("Inbox");
# Add message to Inbox Folder
inboxFolder.add_message(MapiMessage.load(dataDir + "MapiMsgWithPoll.msg"))
pst.dispose()
Tambahkan Beberapa Pesan ke File PST untuk Kinerja Lebih Baik
Menambahkan pesan individu ke PST memerlukan lebih banyak operasi I/O ke disk dan dapat memperlambat kinerja. Untuk meningkatkan kinerja, pesan dapat ditambahkan ke PST dalam mode massal, meminimalkan operasi I/O.
Muat dan Tambahkan Pesan dari Disk
The add_messages metode memungkinkan Anda menentukan rentang pesan yang akan ditambahkan ke file PST. Contoh kode di bawah ini menunjukkan cara menambahkan beberapa pesan dari disk ke file PST untuk meningkatkan kinerja:
- Definisikan fungsi dengan membuat
add_messages_in_bulk_modedengan parameter untuk nama file PST dan folder yang berisi pesan. - Buka file PST yang ditentukan menggunakan PersonalStorage.from_file().
- Ambil subfolder "myInbox" dari folder root PST.
- Tambahkan pesan dari folder yang ditentukan secara massal menggunakan folder.add_messages().
- Panggil
add_messages_in_bulk_mode()dengan file PST dan nama folder sebagai argumen.
from aspose.email.storage.pst import PersonalStorage, StandardIpmFolder, FileFormatVersion
def add_messages_in_bulk_mode(file_name, msg_folder_name):
with PersonalStorage.from_file(file_name) as personal_storage:
folder = personal_storage.root_folder.get_sub_folder("myInbox")
folder.add_messages(message_collection(msg_folder_name))
# Add multiple messages from the specified folder to the PST file for improved performance
add_messages_in_bulk_mode("file.pst", "folder_with_messages")
**Gunakan MapiMessageEnumerator untuk Operasi Massal
Untuk menyederhanakan pemrosesan pesan massal, Anda dapat mengimplementasikan MapiMessageEnumerator kelas yang secara efisien mengiterasi pesan yang disimpan dalam folder tertentu. Skrip Python berikut menyediakan pendekatan terstruktur untuk enumerasi dan iterasi pesan MAPI menggunakan pustaka Aspose.Email. Ia mendefinisikan dua kelas pembantu:
-
MapiMessageEnumeratoruntuk membaca pesan dari sebuah direktori, -
dan
MapiMessageCollectionuntuk mengelolanya selama operasi batch.
Pendekatan ini memfasilitasi penelusuran dan penanganan file pesan MAPI.
import os
from aspose.email.mapi import MapiMessage
# Define a class to enumerate through MAPI message files in a directory
class MapiMessageEnumerator:
def __init__(self, path):
self.files = os.listdir(path)
self.position = -1
def __next__(self):
self.position += 1
if self.position < len(self.files):
return MapiMessage.from_file(os.path.join(self.path, self.files[self.position]))
else:
raise StopIteration
def __iter__(self):
return self
# Define a collection class for managing MAPI messages
class MapiMessageCollection:
def __init__(self, path):
self.path = path
def __iter__(self):
return MapiMessageEnumerator(self.path)
# Iterate through MAPI messages in a specific directory
msg_folder_name = "\\Files\\msg"
# Initialize a collection with the directory containing message files
message_collection = MapiMessageCollection(msg_folder_name)
for message in message_collection:
# Process each MAPI message object as needed
pass
Tambah Pesan dari PST Lain
Untuk mengimpor pesan dari satu file PST ke yang lain, Aspose.Email menyediakan FolderInfo.enumerate_mapi_messages() metode. Contoh kode berikut menunjukkan cara menyalin pesan dari folder "Inbox" dalam satu file PST ke file PST lain:
Ambil Pesan dari File PST Outlook
Di Baca File PST Outlook, Ambil Informasi Folder dan Subfolder, kami telah membahas cara memuat file PST Outlook dan menelusuri foldernya untuk mendapatkan nama folder serta jumlah pesan di dalamnya. Artikel ini menjelaskan cara mengakses dan mengekstrak pesan dari file PST Outlook: mengambil detail pesan dasar, menghitung jumlah item dalam suatu folder, dan mengekstrak sejumlah pesan tertentu untuk diproses atau dianalisis.
Ambil Informasi Pesan Dasar
Contoh kode di bawah ini menunjukkan cara mengekstrak dan menampilkan informasi utama dari pesan MAPI yang disimpan dalam file PST menggunakan pustaka Aspose.Email. Ia menginisialisasi sebuah PersonalStorage objek dari file "Outlook.pst", mengambil isi folder root, dan mengiterasi setiap pesan. Skrip mencetak detail seperti subjek, informasi pengirim, alamat penerima, waktu pengiriman, dan isi pesan, memberikan gambaran komprehensif tentang setiap email dalam file PST yang ditentukan.
from aspose.email.storage.pst import *
from aspose.email.mapi import MapiMessage
pst = PersonalStorage.from_file("Outlook.pst")
folderInfo = pst.root_folder
messageInfoCollection = folderInfo.get_contents()
for messageInfo in messageInfoCollection:
mapi = pst.extract_message(messageInfo)
print("Subject: " + mapi.subject)
print("Sender name: " + mapi.sender_name)
print("Sender email address: " + mapi.sender_email_address)
print("To: ", mapi.display_to)
print("Cc: ", mapi.display_cc)
print("Bcc: ", mapi.display_bcc)
print("Delivery time: ", str(mapi.delivery_time))
print("Body: " + mapi.body)
Pembacaan Rekursif Folder Bersarang
File PST Outlook dapat berisi folder bersarang. Untuk mendapatkan informasi pesan dari folder tersebut, serta folder tingkat atas, gunakan metode rekursif untuk membaca semua folder. Potongan kode berikut menunjukkan cara membaca file PST Outlook dan menampilkan isi folder serta pesan secara rekursif:
Mengambil Jumlah Total Item dalam Folder PST
Untuk mengambil total jumlah item (seperti email, janji, tugas, kontak, dll.) yang ada dalam penyimpanan pesan, gunakan metode get_total_items_count() dari MessageStore kelas. Ia menyediakan cara praktis untuk dengan cepat mengumpulkan informasi tentang ukuran dan volume data dalam penyimpanan. Potongan kode berikut menunjukkan cara mendapatkan total jumlah item dari file PST:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
count = pst.store.get_total_items_count()
Ekstrak Jumlah Pesan Tertentu
Untuk mengekstrak sejumlah pesan tertentu dari file PST, gunakan metode get_contents(start_index, count) dari FolderInfo kelas. Ia mengambil dua parameter:
- start_index - nomor pesan pertama, misalnya yang ke-10;
- count - total jumlah pesan yang akan diambil.
Mengambil hanya subset pesan yang diperlukan pada satu waktu dapat berguna untuk mengelola volume email yang besar. Contoh kode berikut menunjukkan penerapan fitur ini:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
folder = pst.root_folder.get_sub_folder("Inbox")
# Extracts messages starting from 10th index top and extract total 100 messages
messages = folder.get_contents(10, 100)
Bekerja dengan Lampiran di File PST
Ekstrak Lampiran tanpa Mengekstrak Seluruh Pesan
Aspose.Email untuk Python memungkinkan mengekstrak lampiran dari pesan PST tanpa harus mengekstrak seluruh pesan terlebih dahulu. Hal ini dapat dilakukan menggunakan extract_attachments metode dari PersonalStorage kelas. Potongan kode berikut menunjukkan cara mengekstrak lampiran sambil melewati file .msg:
from aspose.email.storage.pst import PersonalStorage
# Open the PST file
with PersonalStorage.from_file(data_dir + "my.pst") as personal_storage:
# Get the "Inbox" subfolder from the root folder in the personal storage
folder = personal_storage.root_folder.get_sub_folder("Inbox")
# Iterate over each message entry ID in the Inbox folder
for message_info in folder.enumerate_messages_entry_id():
# Extract attachments for the current message
attachments = personal_storage.extract_attachments(message_info)
# Check if the message has any attachments
if attachments.count > 0:
# Iterate over each attachment in the list
for attachment in attachments:
# Ignore attachments that are message files (.msg)
if attachment.long_file_name and attachment.long_file_name.endswith(".msg"):
continue
# Save the attachment with its original file name
attachment.save(data_dir + attachment.long_file_name)
Tambahkan File sebagai Lampiran ke Pesan PST
Microsoft Outlook adalah alat yang kuat untuk mengelola email, kalender, tugas, kontak, dan entri jurnal. Selain fungsionalitas inti tersebut, Outlook juga memungkinkan penambahan file ke folder PST, memungkinkan pengguna menjaga catatan lengkap dokumen terkait. Aspose.Email menyederhanakan proses penambahan file ke folder PST, berfungsi serupa dengan cara ia menangani pesan, kontak, tugas, dan entri jurnal.
Potongan kode berikut menggambarkan cara menambahkan dokumen ke folder PST dengan Aspose.Email:
from aspose.email.storage.pst import PersonalStorage, FileFormatVersion
# Create a new PST file
personal_storage = PersonalStorage.create(data_dir + "AddFilesToPst_out.pst", FileFormatVersion.UNICODE)
# Add a new folder to store files
folder = personal_storage.root_folder.add_sub_folder("Files")
# Add a file to the PST folder
folder.add_file(data_dir + "FileToBeAddedToPST.txt", "")
Cari dan Filter Pesan dalam File PST
File Penyimpanan Pribadi (PST) dapat berisi sejumlah besar data, dan memerlukan penerapan filtrasi ganda untuk menemukan data yang sesuai dengan kriteria tertentu. Dengan PersonalStorageQueryBuilder kelas, Aspose.Email memungkinkan Anda mencari rekaman spesifik dalam PST berdasarkan kriteria pencarian yang ditentukan. Anda dapat mencari pesan menggunakan parameter seperti pengirim, penerima, subjek, pentingnya pesan, keberadaan lampiran, ukuran pesan, dan bahkan ID pesan. Selain itu, PersonalStorageQueryBuilder dapat digunakan untuk pencarian di dalam subfolder. Bagian berikut memberikan panduan komprehensif tentang pencarian file PST Outlook.
Cari Pesan dan Folder Outlook
Potongan kode berikut menunjukkan cara menggunakan PersonalStorageQueryBuilder kelas untuk mencari konten dalam PST berdasarkan berbagai kriteria pencarian. Secara khusus menunjukkan pencarian PST berdasarkan:
- Pentingnya pesan.
- Kelas pesan.
- Kehadiran lampiran.
- Ukuran pesan.
- Pesan belum dibaca.
- Pesan belum dibaca dengan lampiran, dan folder dengan nama subfolder tertentu.
from aspose.email.mapi import MapiMessageFlags
from aspose.email.storage.pst import PersonalStorage, PersonalStorageQueryBuilder, MapiImportance
with PersonalStorage.from_file(data_dir + "my.pst") as personal_storage:
folder = personal_storage.root_folder.get_sub_folder("Inbox")
builder = PersonalStorageQueryBuilder()
# High importance messages
builder.importance.equals(2)
messages = folder.get_contents(builder.get_query())
print("Messages with High Imp:", messages.count)
builder = PersonalStorageQueryBuilder()
builder.message_class.equals("IPM.Note")
messages = folder.get_contents(builder.get_query())
print("Messages with IPM.Note:", messages.count)
builder = PersonalStorageQueryBuilder()
# Messages with attachments AND high importance
builder.importance.equals(2)
builder.has_flags(MapiMessageFlags.HASATTACH)
messages = folder.get_contents(builder.get_query())
print("Messages with atts:", messages.count)
builder = PersonalStorageQueryBuilder()
# Messages with size > 15 KB
builder.message_size.greater(15000)
messages = folder.get_contents(builder.get_query())
print("Messages size > 15 KB:", messages.count)
builder = PersonalStorageQueryBuilder()
# Unread messages
builder.has_no_flags(MapiMessageFlags.READ)
messages = folder.get_contents(builder.get_query())
print("Unread:", messages.count)
builder = PersonalStorageQueryBuilder()
# Unread messages with attachments
builder.has_no_flags(MapiMessageFlags.READ)
builder.has_flags(MapiMessageFlags.HASATTACH)
messages = folder.get_contents(builder.get_query())
print("Unread msgs with atts:", messages.count)
# Folder with name 'SubInbox'
builder = PersonalStorageQueryBuilder()
builder.folder_name.equals("SubInbox")
folders = folder.get_sub_folders(builder.get_query())
print("Folder having subfolder:", folders.count)
builder = PersonalStorageQueryBuilder()
# Folders with subfolders
builder.has_subfolders()
folders = folder.get_sub_folders(builder.get_query())
print("Folders with subfolders:", folders.count)
Pencarian dengan Pencocokan Tidak Sensitif Huruf
Dengan memanfaatkan Aspose.Email PersonalStorageQueryBuilder, Anda dapat menentukan kondisi pencarian untuk pesan email sambil mengabaikan sensitivitas huruf, memungkinkan pengalaman pencarian yang lebih fleksibel dan ramah pengguna. Contoh kode berikut menunjukkan cara memuat file PST, mengakses folder "Inbox", dan menerapkan filter pencarian yang tidak memperhatikan huruf besar/kecil untuk menemukan email berdasarkan informasi pengirim. Fitur ini sangat membantu ketika menangani variasi kapitalisasi dalam data email.
Mencari Baris Subjek dengan Beberapa Kata Kunci
Ambil pesan atau item spesifik dari file penyimpanan pribadi (PST) atau penyimpanan pesan dengan menerapkan either(query1, query2) metode dari PersonalStorageQueryBuilder kelas. Memiliki dua parameter yang memungkinkan Anda menggabungkan dua kueri berbeda, query1 dan query2, serta menemukan subjek pesan yang cocok dengan salah satu dari dua kata yang ditentukan. Lihat contoh kode di bawah:
import aspose.email as ae
builder1 = ae.storage.pst.PersonalStorageQueryBuilder()
builder1.subject.contains("Review") # 'Review' is key word for the search
builder2 = ae.storage.pst.PersonalStorageQueryBuilder()
builder2.subject.contains("Error") # 'Error' is also key word for the search
builder = ae.storage.pst.PersonalStorageQueryBuilder()
# message subjects must contain 'Review' or 'Error' words
builder.either(builder1.get_query(), builder2.get_query())
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
folder = pst.root_folder.get_sub_folder("Inbox")
messages = folder.get_contents(builder.get_query())
for message in messages:
print(f"Message: {message.subject}")
Menyaring Email di PST berdasarkan Kriteria Tertentu
Ambil hanya pesan yang cocok dengan filter tertentu, seperti subjek, pengirim, atau tanggal, menggunakan MailQuery kelas. Contoh kode berikut menunjukkan cara menggunakan pustaka Aspose.Email untuk memuat file PST dan menyaring pesan dalam folder tertentu, dalam kasus ini, folder "Inbox":
import aspose.email as ae
# Load the PST file and access a folder
pst = ae.PersonalStorage.from_file("sample.pst")
inbox = pst.root_folder.get_sub_folder("Inbox")
# Create a MailQuery to filter messages by subject
query_builder = ae.MailQueryBuilder()
query_builder.subject.contains("Invoice")
query = query_builder.get_query()
# Enumerate filtered messages
for info in inbox.enumerate_mapi_messages(query):
print("Subject:", info.subject)
Mengambil Pesan berdasarkan Tipe
Aspose.Email MessageKind overload memungkinkan Anda mengambil pesan dengan tipe tertentu, seperti hanya email, janji, atau kontak. Contoh kode berikut menunjukkan cara mengakses dan menyaring tipe pesan tertentu dari folder yang ditentukan:
import aspose.email as ae
# Load the PST and target folder
pst = ae.PersonalStorage.from_file("sample.pst")
inbox = pst.root_folder.get_sub_folder("Inbox")
# Retrieve only email messages (not calendar items, contacts, etc.)
for info in inbox.enumerate_mapi_messages(ae.MessageKind.MAPI_MESSAGE):
print("Email Message:", info.subject)
Paginasikan Pengambilan Pesan untuk File PST Besar
Saat bekerja dengan folder yang berisi banyak pesan, Anda dapat menggunakan paginasi untuk memuat pesan secara bertahap menggunakan start_index dan count parameter. Contoh kode berikut menunjukkan cara mengakses dan mengambil rentang pesan email tertentu dari file PST alih-alih semuanya sekaligus:
import aspose.email as ae
# Load the PST and access the target folder
pst = ae.PersonalStorage.from_file("sample.pst")
inbox = pst.root_folder.get_sub_folder("Inbox")
# Retrieve messages from index 0 to 9
for info in inbox.enumerate_mapi_messages(0, 10):
print("Paged Message:", info.subject)
Memperbarui dan Mengatur Konten PST Outlook
Pindahkan Pesan antar Folder
Aspose.Email memungkinkan memindahkan item dari folder sumber ke folder lain dalam file Personal Storage (PST) yang sama. Ini mencakup:
- Memindahkan folder tertentu ke folder induk baru.
- Memindahkan pesan yang ditentukan ke folder baru.
- Memindahkan isi ke folder baru.
- Memindahkan subfolder ke folder induk baru.
Potongan kode berikut menunjukkan cara memindahkan item seperti pesan dan folder dari folder sumber ke folder lain dalam file PST yang sama.
Perbarui Properti Pesan
Kadang diperlukan untuk memodifikasi properti tertentu dari pesan seperti mengubah subjek, menandai pentingnya pesan, dan lainnya. Memperbarui properti ini dalam file PST dapat dilakukan dengan menggunakan FolderInfo.change_messages metode yang disediakan oleh Aspose.Email untuk Python. Artikel ini menampilkan proses pembaruan massal properti pesan, memungkinkan penyesuaian otomatis pada banyak pesan dalam file PST. Di bawah ini terdapat potongan kode yang menggambarkan cara melakukan pembaruan massal pada berbagai properti pesan.
from aspose.email.storage.pst import PersonalStorage, PersonalStorageQueryBuilder
from aspose.email.mapi import MapiPropertyTag, MapiProperty, MapiPropertyCollection
pst_file_path = data_dir + "ya4demia04vb.pst"
# Load the Outlook PST file
with PersonalStorage.from_file(pst_file_path) as personal_storage:
# Get the required subfolder
inbox = personal_storage.root_folder.get_sub_folder("Inbox")
# Find messages having From = "someuser@domain.com"
query_builder = PersonalStorageQueryBuilder()
query_builder.from_address.contains("someuser@domain.com")
# Get contents from query
messages = inbox.get_contents(query_builder.get_query())
# Save (MessageInfo, EntryIdString) in a list
change_list = [message_info.entry_id_string for message_info in messages]
# Compose the new properties
updated_properties = MapiPropertyCollection()
updated_properties.add(
MapiPropertyTag.SUBJECT_W,
MapiProperty(MapiPropertyTag.SUBJECT_W, "New Subject".encode("utf-16le"))
)
updated_properties.add(
MapiPropertyTag.IMPORTANCE,
MapiProperty(MapiPropertyTag.IMPORTANCE, bytearray([0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]))
)
# Update messages having From = "someuser@domain.com" with new properties
inbox.change_messages(change_list, updated_properties)
Modifikasi Properti Kustom MAPI
Terkadang Anda mungkin perlu mengidentifikasi dan menandai item yang telah diproses dalam file PST. API Aspose.Email menawarkan solusi untuk tugas ini melalui penggunaan MapiProperty dan MapiNamedProperty kelas. Kelas-kelas ini memungkinkan Anda memberi label pada item yang diproses dengan menetapkan properti khusus pada mereka. Di bawah ini, Anda akan menemukan metode yang sangat berguna untuk menyelesaikan proses penandaan ini:
- MapiNamedProperty(long propertyTag, string nameIdentifier, UUID propertyGuid, bytearray[] propertyValue)
- MapiNamedProperty(long propertyTag, long nameIdentifier, UUID propertyGuid, bytearray[] propertyValue)
- FolderInfo.change_messages(MapiPropertyCollection updatedProperties) - mengubah semua pesan dalam folder
- PersonalStorage.change_message(string entryId, MapiPropertyCollection updatedProperties) - mengubah properti pesan
from uuid import UUID
from aspose.email.storage.pst import PersonalStorage
from aspose.email.mapi import MapiNamedProperty, MapiPropertyCollection
from aspose.email.mapi import MapiPropertyType, MapiProperty, MapiPropertyTag
def generate_named_property_tag(index, data_type):
return (((0x8000 | index) << 16) | data_type) & 0x00000000FFFFFFFF
def run():
# Load the Outlook file
pst_file_path = data_dir + "my.pst"
with PersonalStorage.from_file(pst_file_path) as personal_storage:
test_folder = personal_storage.root_folder.get_sub_folder("Inbox")
# Create the collection of message properties for adding or updating
new_properties = MapiPropertyCollection()
# Normal, Custom, and PidLidLogFlags named properties
mapi_property = MapiProperty(
MapiPropertyTag.ORG_EMAIL_ADDR_W,
"test_address@org.com".encode("utf-16le")
)
named_property1 = MapiNamedProperty(
generate_named_property_tag(0, MapiPropertyType.LONG),
"ITEM_ID",
UUID("00000000-0000-0000-0000-000000000000"),
bytearray([0x7B, 0x00, 0x00, 0x00])
)
named_property2 = MapiNamedProperty(
generate_named_property_tag(1, MapiPropertyType.LONG),
0x0000870C,
UUID("0006200A-0000-0000-C000-000000000046"),
bytearray([0x00, 0x00, 0x00, 0x00])
)
new_properties.add(named_property1.tag, named_property1)
new_properties.add(named_property2.tag, named_property2)
new_properties.add(mapi_property.tag, mapi_property)
test_folder.change_messages(test_folder.enumerate_messages_entry_id(), new_properties)
# Usage
run()
Hapus Pesan dan Folder dari File PST Outlook
Mengelola konten file PST Outlook sering melibatkan penghapusan pesan, folder, atau banyak item yang tidak diperlukan sekaligus. Aspose.Email untuk Python via .NET menyediakan metode yang efisien untuk menghapus pesan dan folder dari file PST, baik Anda perlu menghapus email individu, FolderInfo.delete_child_item() metode, atau melakukan penghapusan massal, FolderInfo.delete_child_items() metode, untuk manajemen file yang lebih baik.
Hapus Pesan dari File PST
Aspose.Email menyediakan FolderInfo kelas untuk mengakses folder tertentu dalam file PST. Contoh kode di bawah menunjukkan cara menggunakan kelas ini untuk mengakses dan menghapus pesan dari subfolder Sent dari file PST yang telah dimuat atau dibuat sebelumnya. Secara khusus, ia mengambil jumlah pesan dan menghapus item pertama di folder "Sent Items".
- Objek PST diinisialisasi dengan membuka file "Outlook.pst" yang terletak di direktori yang ditentukan menggunakan PersonalStorage.from_file().
- Folder Sent Items diakses menggunakan pst.get_predefined_folder(StandardIpmFolder.SENT_ITEMS).
- Kemudian, kode mengambil isi folder "Sent Items" dengan folder.get_contents(), menghitungnya, dan mencetak jumlah total pesan di folder ini.
- Kode mengakses pesan pertama di folder "Sent Items" dengan msgsColl[0] dan menghapusnya menggunakan folder.delete_child_item(msgInfo.entry_id). Fungsi ini menggunakan ID entri dari pesan untuk menghapusnya dari folder.
Setelah penghapusan, kode kembali menghitung pesan di folder "Sent Items" dan mencetak jumlah yang telah diperbarui.
Hapus Item dari File PST
Dalam banyak sistem pesan atau klien email, setiap item (seperti email, janji, atau tugas) diberikan pengidentifikasi unik yang disebut entry ID. delete_item(entry_id) metode dari FolderInfo kelas menerima Entry ID ini sebagai parameter dan menghapus item yang bersesuaian dari penyimpanan pesan. Gunakan kode berikut untuk menghapus sebuah item dari penyimpanan pesan:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
pst.delete_item(entry_id)
Hapus Item secara Massal
API Aspose.Email dapat digunakan untuk menghapus item secara massal dari file PST. Ini dicapai dengan menggunakan delete_child_items() metode yang menerima daftar item Entry ID yang merujuk pada item yang akan dihapus. Potongan kode berikut menunjukkan cara menghapus Item secara massal dari file PST.
Hapus Folder dari File PST
File PST Outlook dapat berisi folder yang tidak lagi diperlukan. Aspose.Email untuk Python via .NET memungkinkan Anda menghapus folder ini baik dengan memindahkannya ke folder Deleted Items (menjadikannya dapat dipulihkan) atau dengan menghapusnya secara permanen. Contoh berikut menunjukkan kedua pendekatan.
Pindahkan Folder ke Deleted Items (Penghapusan Lembut)
The move_item metode dari PersonalStorage kelas memungkinkan folder dipulihkan nanti, karena mereka tidak dihapus secara permanen melainkan dipindahkan ke folder Deleted Items. Potongan kode berikut menunjukkan cara mengimplementasikan metode ini ke dalam proyek python:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
deleted_items_folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.DELETED_ITEMS)
empty_folder = pst.root_folder.get_sub_folder("Empty folder")
some_folder = pst.root_folder.get_sub_folder("Some folder")
pst.move_item(empty_folder, deleted_items_folder)
pst.move_item(some_folder, deleted_items_folder)
Keuntungan metode ini adalah folder yang dihapus dapat dipulihkan dengan mudah.
Pulihkan Folder dari Deleted Items
The move_item metode memungkinkan Anda mengembalikan folder, jika secara tidak sengaja terhapus, dengan memindahkannya kembali dari Deleted Items ke lokasi asalnya.
some_folder = pst.root_folder.get_sub_folder("Some folder")
pst.move_item(some_folder, pst.root_folder)
Hapus Folder Secara Permanen dari Deleted Items
The delete_child_item metode dapat digunakan untuk folder apa pun jika Anda ingin menghapus subfolder secara langsung dan permanen, melewati folder Deleted Items. Contoh kode berikut menunjukkan cara menghapus folder sepenuhnya dari Deleted Items, sehingga pemulihan tidak mungkin.
deleted_items_folder.delete_child_item(empty_folder.entry_id)
Hapus Folder Secara Permanen Seketika
Jika sebuah folder harus dihapus tanpa memindahkannya ke Deleted Items, maka delete_child_item metode memastikan penghapusan yang segera dan permanen.
some_folder = pst.root_folder.get_sub_folder("Some folder")
pst.root_folder.delete_child_item(some_folder.entry_id)