Управление на Outlook контакти в PST файлове

Добавяне на Outlook контакти към PST файлове

Създаване на нов PST файл и добавяне на подпапки демонстрира как да създадете PST файл и да включите подпапки в него. С Aspose.Email можете да добавите MapiContact към подпапката Contacts в PST файл, който сте създали или заредили. По-долу са стъпките за добавяне на MapiContact към PST файл:

  1. Създайте MapiContact обект.
  2. Задайте свойствата на MapiContact като име, пол, имейл адреси, телефонни номера, физически адреси и професионална информация, използвайки различни конструктори и методи.
  3. Създайте PST, използвайки PersonalStorage.create() метод.
  4. Създайте предварително дефинирана папка (Contacts) в корена на PST файла, като достъпите кореновата папка и след това извикате add_mapi_message_item() метод.

Следният фрагмент от код показва как да създадете MAPI контакт и след това да го добавите към папката Contacts в новосъздаден PST файл:

Записване на Outlook контакти като MSG файлове

За достъп до информация за контактите от Outlook PST файл и записването им на диск във формат MSG, Aspose.Email предоставя PersonalStorage и MapiContact класове. Следният фрагмент от код показва как да извлечете цялата информация за контактите от PST файл и да я запишете на диск във формат MSG:

  1. Заредете PST файла в PersonalStorage клас.
  2. Разгледайте папката Contacts.
  3. Получете съдържанието на папката Contacts, за да получите колекцията от съобщения.
  4. Обхождане на колекцията от съобщения.
  5. Извикайте PersonalStorage.extract_message() метод за получаване на информацията за контакта в MapiMessage клас.
  6. Извикайте MapiMessage.save() метод за запазване на контакта на диск във формат MSG.

Експортиране на Outlook контакти като VCF файлове

За достъп до информация за контакти от Microsoft Outlook PST файл и записването им на диск във формат vCard (VCF), използвайте PersonalStorage и MapiContact класове. Кодът по-долу зарежда PST файл от диск и записва всички контакти във формат vCard (VCF). VCF файловете могат след това да се използват във всяка друга програма, която може да зареди стандартния vCard файл за контакти. Ако отворите който и да е VCF файл в Microsoft Outlook, той изглежда както на скриншота по-долу.

todo:image_alt_text

Следният фрагмент от код показва как да експортирате контакти от Outlook PST във формат vCard (VCF):

  1. Използвайте PersonalStorage.from_file за отваряне на PST файла.
  2. Достъп до папката Contacts, като използвате get_sub_folder.
  3. Обхождане на контактите:
    • Използвайте get_contents() за получаване на цялата информация за съобщения във папката.
    • Обхождане на message_info_collection чрез цикл.
  4. Извлечете всеки контакт, като използвате pst.extract_message(message_info) и го съхранете като MAPI съобщение.
  5. Отпечатайте името и entry ID на всеки контакт.
  6. Запишете контакта като VCF файл, като използвате contact.save.
from aspose.email.storage.pst import PersonalStorage
from aspose.email.mapi import ContactSaveFormat

# Load the Outlook PST file
pst = PersonalStorage.from_file("my.pst")

# Get the Contacts folder
folder_info = pst.root_folder.get_sub_folder("Contacts")

# Loop through all the contacts in this folder
message_info_collection = folder_info.get_contents()
for message_info in message_info_collection:
    # Get the contact information
    contact = pst.extract_message(message_info).to_mapi_message_item()

    # Display some contents on screen
    print("Name: " + contact.name_info.display_name + " - " + message_info.entry_id_string)

    # Save to disk in vCard VCF format
    contact.save("D:\\" + contact.name_info.display_name + ".vcf", ContactSaveFormat.V_CARD)

Управление на разпространителни списъци в Outlook в PST файлове

Aspose.Email for Python API позволява създаването на разпространителен списък – колекция от множество контакти. Разпространителният списък може да бъде запазен на диск в Outlook MSG формат и може да се преглежда/манипулира чрез отваряне в MS Outlook.

Създаване и запазване на дистрибуционни списъци

Следният фрагмент от код демонстрира как да създадете PST файл и да добавите разпространителен списък. Също така включва създаване и добавяне на контакти към разпространителния списък в PST файла.

  1. Определете детайлите на контакта - задайте displayName и имейл за всеки контакт.
  2. Създайте нов PST файл, използвайки PersonalStorage.create() с UNICODE формат.
  3. Създайте папка Contacts, като използвате create_predefined_folder().
  4. Инициализиране MapiContact обекти с показвано име и имейл, след което добавете контактите в папката, като използвате add_mapi_message_item().
  5. Създайте членове на разпространителния списък чрез инстанциране на MapiDistributionListMember за всеки контакт и задаване на entry_id чрез base64 декодиране.
  6. Добавяне на членове към MapiDistributionListMemberCollection.
  7. Създайте разпространителен списък чрез инстанциране на MapiDistributionList, задавайки тяло и тема.
  8. Използвайте add_mapi_message_item() за да добавите разпространителния списък към папката с контакти.
displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"

displayName2 = "Wichert Kroos"
email2 = "WichertKroos@teleworm.us"

personalStorage = PersonalStorage.create(dataDir + "CreateDistributionListInPST_out.pst", FileFormatVersion.UNICODE)

contactFolder = personalStorage.create_predefined_folder("Contacts", StandardIpmFolder.CONTACTS)

   # Create contacts
   strEntryId1 = contactFolder.add_mapi_message_item(MapiContact(displayName1, email1))
   strEntryId2 = contactFolder.add_mapi_message_item( MapiContact(displayName2, email2))

   member1 = MapiDistributionListMember(displayName1, email1)
   member1.entry_id_type = MapiDistributionListEntryIdType.CONTACT
   member1.entry_id = base64.b64decode( bytes(strEntryId1, "utf-8") )

   member2 = MapiDistributionListMember(displayName2, email2)
   member2.entry_id_type = MapiDistributionListEntryIdType.CONTACT
   member2.entry_id = base64.b64decode( bytes(strEntryId1, "utf-8") )

   members = MapiDistributionListMemberCollection()
   members.append(member1)
   members.append(member2)

   distribution_list = MapiDistributionList("Contact list", members)
   distribution_list.body = "Distribution List Body"
   distribution_list.subject = "Sample Distribution List using Aspose.Email"     
                    
   # Add distribution list to PST 
   contactFolder.add_mapi_message_item(distribution_list);

Четене на дистрибуционни списъци от PST файлове

Следният фрагмент от код показва как да прочетете разпространителен списък от PST файл:

from aspose.email.mapi import MapiMessage

# Load the MAPI message from file
message = MapiMessage.load("dl.msg")

# Convert the message to MAPI distribution list
dlist = message.to_mapi_message_item()

Обновяване на разпространителните списъци в Outlook PST файлове

За да актуализирате дистрибуционен списък в PST файл, например за добавяне на нов член, използвайте следния примерен код:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.CONTACTS)

# Add a new member to each distribution list in pst
for msg in folder.enumerate_messages():
    # Check if the message has the "IPM.DistList" message class
    if msg.message_class == "IPM.DistList":
        dist_list = pst.extract_message(msg).to_mapi_message_item()
        # Create a new member to add
        member = ae.mapi.MapiDistributionListMember("Edward R. Manuel", "EdwardRManuel@example.com")
        dist_list.members.append(member)
        # Update DL in PST
        folder.update_message(msg.entry_id_string, dist_list)