PST Dosyasındaki Mesajlarla Çalışma
Mesajları Outlook PST Dosyalarına Ekle
Bir PST Dosyasına Tek Mesaj Ekleyin
Yeni bir PST Dosyası Oluşturun ve Alt Klasörler Ekleyin bir PST dosyası oluşturma ve ona bir alt klasör ekleme yöntemini gösterir. Aspose.Email ile oluşturduğunuz veya yüklediğiniz bir PST dosyasının alt klasörlerine de mesaj ekleyebilirsiniz. Aşağıdaki kod örneği, yeni bir PST dosyası oluşturmayı, bir "Inbox" klasörü eklemeyi ve ardından bu klasöre bir mesaj eklemeyi gösterir. PersonalStorage ve FolderInfo görevi yerine getirmek için sınıflar kullanılır.
- Kullan PersonalStorage.create Dosya yolunu ve dosya formatı sürümünü Unicode olarak belirterek yeni bir PST dosyası başlatmak için yöntem.
- PST dosyasının kök dizininde "Inbox" adlı yeni bir klasör oluşturun.
- Yeni oluşturulan "Inbox" klasörüne mesaj eklemek için şu yöntemi kullanın: add_message metod.
- Mesajı şu şekilde yükleyin: 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()
Daha İyi Performans İçin PST Dosyalarına Çoklu Mesaj Ekle
Bireysel mesajları bir PST’ye eklemek, diske daha fazla G/Ç işlemi gerektirir ve bu da performansı yavaşlatabilir. Performansı artırmak için mesajlar toplu olarak PST’ye eklenebilir ve G/Ç işlemleri en aza indirgenir.
Diskten Mesajları Yükle ve Ekle
Bu add_messages metod, bir PST dosyasına eklenecek mesaj aralığını tanımlamanıza olanak tanır. Aşağıdaki kod örneği, performansı artırmak amacıyla diskteki birden fazla mesajı PST dosyasına nasıl ekleyeceğinizi gösterir:
- Bir işlev tanımlamak için oluşturun
add_messages_in_bulk_modePST dosya adı ve mesajların bulunduğu klasör için parametrelerle. - Belirtilen PST dosyasını kullanarak açın PersonalStorage.from_file().
- PST kök klasöründen "myInbox" alt klasörünü alın.
- Belirtilen klasörden mesajları toplu olarak eklemek için kullanarak folder.add_messages().
- Çağırın
add_messages_in_bulk_mode()PST dosyası ve klasör adı argümanlarıyla birlikte.
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")
**Kullan MapiMessageEnumerator Toplu İşlemler için
Toplu mesaj işleme sürecini kolaylaştırmak için şunu uygulayabilirsiniz: MapiMessageEnumerator Belirtilen bir klasörde saklanan mesajlar üzerinde verimli bir şekilde yineleme yapan sınıf. Aşağıdaki Python betiği, Aspose.Email kütüphanesini kullanarak MAPI mesajlarını sayma ve yineleme konusunda yapılandırılmış bir yaklaşım sunar. İki yardımcı sınıf tanımlar:
-
MapiMessageEnumeratorbir dizinden mesajları okumak için, -
ve
MapiMessageCollectiontoplu işlemler sırasında bunları yönetmek için.
Bu yaklaşım, MAPI mesaj dosyalarının gezilmesini ve işlenmesini kolaylaştırır.
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
Başka bir PST’den Mesaj Ekle
Bir PST dosyasından diğerine mesajları içe aktarmak için Aspose.Email şunu sağlar FolderInfo.enumerate_mapi_messages() metod. Aşağıdaki kod örneği, bir PST dosyasındaki "Inbox" klasöründen başka bir PST dosyasına mesajların nasıl kopyalanacağını gösterir:
Outlook PST Dosyalarından Mesajları Al
İçinde Outlook PST Dosyalarını Okuyun, Klasör ve Alt Klasör Bilgilerini Getirin, Outlook PST dosyasını yüklemeyi ve klasörlerini göz atarak klasör adlarını ve içindeki mesaj sayısını elde etmeyi tartıştık. Bu makale, Outlook PST dosyalarından mesajlara erişme ve çıkarma konularını açıklar: temel mesaj ayrıntılarını al, bir klasördeki öğe sayısını say ve işleme veya analiz için belirli sayıda mesaj çıkar.
Temel Mesaj Bilgilerini Al
Aşağıdaki kod örneği, Aspose.Email kütüphanesini kullanarak bir PST dosyasında depolanan MAPI mesajlarından temel bilgileri nasıl çıkarıp görüntüleyeceğinizi gösterir. Bir PersonalStorage "Outlook.pst" dosyasındaki nesneyi alır, kök klasörün içeriğini getirir ve her iletiyi yinelemeler. Betik, konu, gönderici bilgileri, alıcı adresleri, teslim zamanı ve ileti gövdesi gibi detayları yazdırarak belirtilen PST dosyasındaki her e-postanın kapsamlı bir özetini sunar.
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)
İç İçe Klasörlerin Özyinelemeli Okunması
Bir Outlook PST dosyası iç içe klasörler içerebilir. Bunlardan ve üst düzey klasörlerden mesaj bilgilerini almak için tüm klasörleri okumak üzere özyinelemeli bir yöntem kullanın. Aşağıdaki kod parçacığı, bir Outlook PST dosyasını nasıl okuyacağınızı ve klasör ile mesaj içeriklerini özyinelemeli olarak nasıl görüntüleyeceğinizi gösterir:
PST Klasöründe Toplam Öğelerin Sayısını Getir
Mesaj deposunda bulunan toplam öğe sayısını (e-postalar, randevular, görevler, kişiler vb.) almak için get_total_items_count() metodunu kullanın MessageStore sınıf. Depodaki veri boyutu ve hacmi hakkında hızlı bilgi toplamak için kullanışlı bir yol sağlar. Aşağıdaki kod parçacığı, bir PST dosyasındaki toplam öğe sayısını nasıl alacağınızı gösterir:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
count = pst.store.get_total_items_count()
Belirli Sayıda Mesaj Çıkar
Bir PST dosyasından belirli sayıda mesaj çıkarmak için, get_contents(start_index, count) metodunu kullanın FolderInfo sınıf. İki parametre alır:
- start_index - başlangıç mesajının numarası, örneğin 10.
- count - alınacak toplam mesaj sayısı.
Bir seferde yalnızca gerekli mesaj alt kümesini almak, büyük miktarda e-posta verisini yönetmek için faydalı olabilir. Aşağıdaki kod örneği bu özelliğin uygulanışını gösterir:
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)
PST Dosyalarında Eklerle Çalış
Tüm Mesajı Çıkarmadan Ekleri Çıkar
Aspose.Email for Python, bir PST mesajının tüm mesajını çıkarmaya gerek kalmadan ekleri çıkarmayı sağlar. Bu, şu yöntemle yapılabilir: extract_attachments metodu PersonalStorage sınıf. Aşağıdaki kod parçacığı, .msg dosyalarını atlayarak ekleri nasıl çıkaracağınızı gösterir:
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)
Dosyaları PST Mesajlarına Ek Olarak Ekle
Microsoft Outlook, e-postaları, takvimleri, görevleri, kişileri ve günlük girişlerini yönetmek için güçlü bir araçtır. Bu temel işlevlerin ötesinde, kullanıcıların ilişkili belgelerin kapsamlı bir kaydını tutmalarını sağlayarak dosyaları PST klasörlerine eklemeye de izin verir. Aspose.Email, dosyaları bir PST klasörüne ekleme sürecini, mesajları, kişileri, görevleri ve günlük girişlerini işlediği gibi basitleştirir.
Aşağıdaki kod parçacığı, Aspose.Email ile bir belgeyi PST klasörüne nasıl ekleyeceğinizi gösterir:
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", "")
PST Dosyalarında Mesajları Ara ve Filtrele
Personal Storage (PST) dosyaları büyük miktarda veri içerebilir ve belirli kriterlere uyan veriyi bulmak için birden fazla filtreleme uygulanmasını gerektirir. Bununla PersonalStorageQueryBuilder sınıf, Aspose.Email’in tanımlı arama kriterlerine göre bir PST içinde belirli kayıtları aramanızı sağlar. Gönderici, alıcı, konu, mesaj önemi, ek varlığı, mesaj boyutu ve hatta mesaj kimliği gibi parametreleri kullanarak mesaj arayabilirsiniz. Ayrıca, PersonalStorageQueryBuilder alt klasörlerde arama yapmak için kullanılabilir. Aşağıdaki bölümler, Outlook PST dosyalarında arama yapmaya yönelik kapsamlı bir rehber sunar.
Outlook Mesajlarını ve Klasörlerini Ara
Aşağıdaki kod örneği size nasıl kullanılacağını gösterir PersonalStorageQueryBuilder farklı arama kriterlerine göre bir PST içindeki içerikleri aramak için sınıf. Özellikle bir PST’yi şu kriterlere göre aramayı gösterir:
- Mesaj önemi.
- Mesaj sınıfı.
- Eklerin varlığı.
- Mesaj boyutu.
- Okunmamış mesajlar.
- Ekleri olan okunmamış mesajlar ve belirli alt klasör adına sahip klasörler.
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)
Büyük/Küçük Harfe Duyarsız Eşleşme ile Arama
Aspose.Email’i kullanarak PersonalStorageQueryBuilder, e-posta mesajları için büyük/küçük harf duyarsızlığı göz ardı ederek arama koşulları belirleyebilirsiniz; bu da daha esnek ve kullanıcı dostu bir arama deneyimi sağlar. Aşağıdaki kod örneği, bir PST dosyasını nasıl yükleyeceğinizi, "Inbox" klasörüne nasıl erişeceğinizi ve gönderici bilgisine göre e-postaları bulmak için büyük/küçük harf duyarsız arama filtrelerini nasıl uygulayacağınızı gösterir. Bu özellik, e-posta verilerinde farklı kapitalizasyonlarla çalışırken özellikle yararlıdır.
Birden Çok Anahtar Kelime Kullanarak Konu Satırlarını Ara
Kişisel depolama dosyasından (PST) veya mesaj mağazasından belirli mesajları veya öğeleri, uygulayarak al: either(query1, query2) metodu PersonalStorageQueryBuilder sınıf. İki parametre alır ve iki farklı sorguyu (query1 ve query2) birleştirmenize, iki belirtilen kelimeden herhangi birine uyan mesaj konusunu bulmanıza olanak tanır. Aşağıdaki kod örneğine bakın:
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}")
PST’deki E-postaları Belirli Kriterlere Göre Filtrele
Konu, gönderen veya tarih gibi belirli bir filtreye uyan sadece mesajları, kullanarak al: MailQuery sınıf. Aşağıdaki kod örneği, Aspose.Email kütüphanesini kullanarak bir PST dosyasını yüklemeyi ve belirli bir klasördeki, bu örnekte "Inbox" klasöründeki mesajları filtrelemeyi gösterir:
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)
Mesajları Türlerine Göre Getir
Aspose.Email MessageKind aşırı yükleme, yalnızca e-postalar, randevular veya kişiler gibi belirli bir türdeki mesajları almanıza izin verir. Aşağıdaki kod örneği, belirli bir klasörden belirli türdeki mesajlara nasıl erişileceğini ve bunları nasıl filtreleyeceğinizi gösterir:
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)
Büyük PST Dosyaları için Mesaj Alımını Sayfalama
Çok sayıda mesaj içeren klasörlerle çalışırken, mesajları parçalar halinde yüklemek için sayfalama kullanabilirsiniz; start_index ve count parametreler. Aşağıdaki kod örneği, bir PST dosyasından tüm mesajları bir kerede almayıp belirli bir aralıktaki e-posta mesajlarına nasıl erişileceğini ve bunları alacağınızı gösterir:
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)
Outlook PST İçeriğini Güncelle ve Düzenle
Klasörler Arasında Mesaj Taşıma
Aspose.Email, aynı Kişisel Depolama (PST) dosyasındaki bir kaynak klasörden başka bir klasöre öğeleri taşıma imkanı sağlar. Şunları içerir:
- Belirtilen klasörü yeni bir üst klasöre taşıma.
- Belirtilen mesajları yeni bir klasöre taşıma.
- İçeriği yeni bir klasöre taşıma.
- Alt klasörleri yeni bir üst klasöre taşıma.
Aşağıdaki kod snippet’i, aynı PST dosyasındaki bir kaynak klasörden başka bir klasöre mesajlar ve klasörler gibi öğeleri nasıl taşıyacağınızı gösterir.
Mesaj Özelliklerini Güncelle
Bazen mesajların konu başlığını değiştirmek, mesaj önceliğini işaretlemek gibi belirli özellikleri değiştirmek gerekir. Bu özellikleri bir PST dosyası içinde güncellemek, şunu kullanarak sağlanabilir: FolderInfo.change_messages Aspose.Email for Python tarafından sağlanan bir yöntem. Bu makale, bir PST dosyasındaki birden çok mesajda otomatik ayarlamalar yapmayı sağlayan toplu mesaj özelliği güncellemelerini gösterir. Aşağıda, çeşitli mesaj özelliklerinde toplu güncellemeler nasıl yapılır, gösteren bir kod örneği bulunmaktadır.
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)
Özel MAPI Özelliklerini Değiştir
Bazen bir PST dosyasında işlenmiş öğeleri tanımlamanız ve işaretlemeniz gerekebilir. Aspose.Email API, bu görev için şu aracılığıyla bir çözüm sunar: MapiProperty ve MapiNamedProperty sınıflar. Bu sınıflar, işlenmiş öğelere özel özellikler atayarak etiketleme yapmanızı sağlar. Aşağıda, bu işaretleme sürecini gerçekleştirirken özellikle yararlı olacak yöntemleri bulacaksınız:
- MapiNamedProperty(long propertyTag, string nameIdentifier, UUID propertyGuid, bytearray[] propertyValue)
- MapiNamedProperty(long propertyTag, long nameIdentifier, UUID propertyGuid, bytearray[] propertyValue)
- FolderInfo.change_messages(MapiPropertyCollection updatedProperties) - bir klasördeki tüm mesajları değiştirir
- PersonalStorage.change_message(string entryId, MapiPropertyCollection updatedProperties) - mesaj özelliklerini değiştirir
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()
Outlook PST Dosyalarından Mesajları ve Klasörleri Sil
Outlook PST dosyalarının içeriğini yönetmek genellikle gereksiz mesajları, klasörleri veya birden çok öğeyi bir anda kaldırmayı içerir. Aspose.Email for Python via .NET, bir PST dosyasından mesajları ve klasörleri silmek için etkili yöntemler sunar; bireysel e-postaları kaldırmanız gerektiğinde bile, FolderInfo.delete_child_item() metodu, ya da toplu silmeler gerçekleştirmek, FolderInfo.delete_child_items() metodu, daha iyi dosya yönetimi için.
PST Dosyalarından Mesajları Sil
Aspose.Email şunları sağlar FolderInfo sınıf, bir PST dosyasındaki belirli klasörlere erişmek için kullanılır. Aşağıdaki kod örneği, bu sınıfı daha önce yüklenmiş veya oluşturulmuş bir PST dosyasının Sent alt klasöründen mesajları erişmek ve silmek için nasıl kullanılacağını gösterir. Özellikle, mesaj sayısını alır ve "Sent Items" klasöründeki ilk öğeyi siler.
- Bir PST nesnesi, belirtilen dizinde bulunan "Outlook.pst" dosyasını açarak başlatılır: PersonalStorage.from_file().
- Sent Items klasörüne şu şekilde erişilir: pst.get_predefined_folder(StandardIpmFolder.SENT_ITEMS).
- Ardından, kod "Sent Items" klasörünün içeriğini şu şekilde alır: folder.get_contents(), sayar ve bu klasördeki toplam mesaj sayısını yazdırır.
- Kod, "Sent Items" klasöründeki ilk mesaja msgsColl[0] ile erişir ve onu kullanarak siler folder.delete_child_item(msgInfo.entry_id). Bu fonksiyon, mesajın entry ID’sini kullanarak onu klasörden kaldırır.
Silme işleminden sonra, kod "Sent Items" klasöründeki mesajları tekrar sayar ve güncellenmiş sayıyı yazdırır.
PST Dosyalarından Öğeleri Sil
Birçok mesajlaşma sistemi veya e-posta istemcisinde, her öğeye (e-posta, randevu veya görev gibi) entry ID denilen benzersiz bir tanımlayıcı atanır. delete_item(entry_id) metodu FolderInfo sınıf bu entry ID’yi parametre olarak alır ve ilgili öğeyi mesaj mağazasından kaldırır. Mesaj mağazasından bir öğeyi silmek için aşağıdaki kodu kullanın:
import aspose.email as ae
pst = ae.storage.pst.PersonalStorage.from_file("my.pst")
pst.delete_item(entry_id)
Öğeleri Toplu Olarak Sil
Aspose.Email API, bir PST dosyasından öğeleri toplu olarak silmek için kullanılabilir. Bu, aşağıdaki yöntemle gerçekleştirilir: delete_child_items() silinecek öğelere referans veren Entry ID öğelerinin bir listesini kabul eden bir yöntem. Aşağıdaki kod örneği, bir PST dosyasından öğeleri toplu olarak nasıl sileceğinizi gösterir.
PST Dosyalarından Klasörleri Sil
Outlook PST dosyalarında artık ihtiyaç duyulmayan klasörler olabilir. Aspose.Email for Python via .NET, bu klasörleri Deleted Items klasörüne taşıyarak (kurtarılabilir hâle getirerek) ya da kalıcı olarak silerek kaldırmanıza olanak tanır. Aşağıdaki örnekler her iki yaklaşımı da göstermektedir.
Bir Klasörü Deleted Items’a Taşı (Yumuşak Silme)
Bu move_item metodu PersonalStorage sınıf, klasörlerin kalıcı olarak silinmediği, Deleted Items klasörüne taşındığı için daha sonra kurtarılabilmesini sağlar. Aşağıdaki kod örneği, bu yöntemi bir python projesine nasıl uygulayacağınızı gösterir.
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)
Bu metodun avantajı, silinen klasörün kolayca geri getirilebilmesidir.
Deleted Items’tan Bir Klasörü Geri Yükle
Bu move_item yöntemi, bir klasör yanlışlıkla silinmişse, Deleted Items’tan alıp orijinal konumuna geri taşıyarak klasörü geri yüklemenizi sağlar.
some_folder = pst.root_folder.get_sub_folder("Some folder")
pst.move_item(some_folder, pst.root_folder)
Deleted Items’tan Klasörü Kalıcı Olarak Sil
Bu delete_child_item yöntemi, Deleted Items klasörünü atlayarak bir alt klasörü anında ve kalıcı olarak silmek istediğinizde tüm klasörlerde kullanılabilir. Aşağıdaki kod örneği, klasörü Deleted Items’tan tamamen kaldırarak kurtarmayı imkânsız hale getirmeyi gösterir:
deleted_items_folder.delete_child_item(empty_folder.entry_id)
Bir Klasörü Anında Kalıcı Olarak Sil
Bir klasör, Deleted Items klasörüne taşınmadan silinmek isteniyorsa, delete_child_item yöntemi, anında ve kalıcı kaldırma sağlar.
some_folder = pst.root_folder.get_sub_folder("Some folder")
pst.root_folder.delete_child_item(some_folder.entry_id)