Керування контактами 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 та email для кожного контакту.
  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)