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.

  1. Gunakan PersonalStorage.create metode untuk memulai file PST baru dengan menentukan jalur file dan versi format file sebagai Unicode.
  2. Buat folder baru bernama "Inbox" di direktori akar file PST.
  3. Tambahkan pesan ke folder "Inbox" yang baru dibuat menggunakan add_message metode.
  4. 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:

  1. Definisikan fungsi dengan membuat add_messages_in_bulk_mode dengan parameter untuk nama file PST dan folder yang berisi pesan.
  2. Buka file PST yang ditentukan menggunakan PersonalStorage.from_file().
  3. Ambil subfolder "myInbox" dari folder root PST.
  4. Tambahkan pesan dari folder yang ditentukan secara massal menggunakan folder.add_messages().
  5. 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:

  • MapiMessageEnumerator untuk membaca pesan dari sebuah direktori,

  • dan MapiMessageCollection untuk 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:

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

  1. Objek PST diinisialisasi dengan membuka file "Outlook.pst" yang terletak di direktori yang ditentukan menggunakan PersonalStorage.from_file().
  2. Folder Sent Items diakses menggunakan pst.get_predefined_folder(StandardIpmFolder.SENT_ITEMS).
  3. Kemudian, kode mengambil isi folder "Sent Items" dengan folder.get_contents(), menghitungnya, dan mencetak jumlah total pesan di folder ini.
  4. 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)