Работа с контактами в PST файле

Добавление контакта в PST

Создание нового файла PST и добавление подпапок показано, как создать файл PST и добавить к нему подпапку. С помощью Aspose.Email вы можете добавить MapiContact в подпапку Контакты файла PST, который вы создали или загрузили. Ниже приведены шаги для добавления MapiContact в PST:

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

Следующий фрагмент кода показывает, как создать MapiContact и затем добавить его в папку контактов только что созданного файла PST.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
# Create three Contacts
contact1 = MapiContact("Sebastian Wright", "SebastianWright@dayrep.com")
contact2 = MapiContact("Wichert Kroos", "WichertKroos@teleworm.us", "Grade A Investment")
contact3 = MapiContact("Christoffer van de Meeberg", "ChristoffervandeMeeberg@teleworm.us", "Krauses Sofa Factory", "046-630-4614046-630-4614")
# Contact 4
contact4 = MapiContact()
contact4.name_info = MapiContactNamePropertySet("Margaret", "J.", "Tolle")
contact4.personal_info.gender = MapiContactGender.FEMALE
contact4.professional_info = MapiContactProfessionalPropertySet("Adaptaz", "Recording engineer")
contact4.physical_addresses.work_address.address = "4 Darwinia Loop EIGHTY MILE BEACH WA 6725"
contact4.electronic_addresses.email_1 = MapiContactElectronicAddress("Hisen1988", "SMTP", "MargaretJTolle@dayrep.com")
contact4.telephones.business_telephone_number = "(08)9080-1183"
contact4.telephones.mobile_telephone_number = "(925)599-3355(925)599-3355"
# Contact #5
contact5 = MapiContact()
contact5.name_info = MapiContactNamePropertySet("Matthew", "R.", "Wilcox");
contact5.personal_info.gender = MapiContactGender.MALE;
contact5.professional_info = MapiContactProfessionalPropertySet("Briazz", "Psychiatric aide");
contact5.physical_addresses.work_address.address = "Horner Strasse 12 4421 SAASS";
contact5.telephones.business_telephone_number = "0650 675 73 300650 675 73 30";
contact5.telephones.home_telephone_number = "(661)387-5382(661)387-5382";
# Contact #6
contact6 = MapiContact();
contact6.name_info = MapiContactNamePropertySet("Bertha", "A.", "Buell");
contact6.professional_info = MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant");
contact6.personal_info.personal_home_page = "B2BTies.com";
contact6.physical_addresses.work_address.address = "Im Astenfeld 59 8580 EDELSCHROTT";
contact6.electronic_addresses.email_1 = MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com");
contact6.telephones = MapiContactTelephonePropertySet("06605045265");
personalStorage = PersonalStorage.create(dataDir + "SampleContacts_out.pst", FileFormatVersion.UNICODE)
contactFolder = personalStorage.create_predefined_folder("Contacts", StandardIpmFolder.CONTACTS)
contactFolder.add_mapi_message_item(contact1)
contactFolder.add_mapi_message_item(contact2);
contactFolder.add_mapi_message_item(contact3);
contactFolder.add_mapi_message_item(contact4);
contactFolder.add_mapi_message_item(contact5);
contactFolder.add_mapi_message_item(contact6);
personalStorage.dispose()

Сохранение информации о контактах из PST файла в формате MSG

В этой статье объясняется, как получить информацию о контактах из файла Outlook PST и сохранить контакт на диск в формате MSG. Классы PersonalStorage и MapiContact используются для получения и отображения информации о контактах. Шаги для получения информации о контактах:

  1. Загрузите файл PST в класс PersonalStorage.
  2. Просмотрите папку Контакты.
  3. Получите содержимое папки Контакты, чтобы получить коллекцию сообщений.
  4. Пройдите через коллекцию сообщений.
  5. Вызовите метод PersonalStorage.extract_message(), чтобы получить информацию о контакте в классе MapiMessage.
  6. Вызовите метод MapiMessage.save(), чтобы сохранить контакт на диск в формате MSG.

Следующий фрагмент кода показывает, как извлечь всю информацию о контакте из файла PST и сохранить на диск в формате MSG.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
pst = PersonalStorage.from_file(dataDir + "SampleContacts_out.pst")
folderInfo = pst.get_predefined_folder(StandardIpmFolder.CONTACTS)
messageInfoCollection = folderInfo.get_contents()
for messageInfo in messageInfoCollection:
# Get the contact information
mapi = pst.extract_message(messageInfo)
contact = mapi.to_mapi_message_item()
# Display some contents on screen
print("Name: " + contact.name_info.display_name)
#Save to disc in MSG Format
if contact.name_info.display_name is not None:
contact.save(dataDir + "Contacts\\" + contact.name_info.display_name + "_out.msg")
contact.save(dataDir + "Contacts\\" + contact.name_info.display_name + "_out.vcf", ContactSaveFormat.VCARD)

Сохранение информации о контактах из PST файла в формате VCF

Эта статья показывает, как получить информацию о контактах из файла PST Microsoft Outlook и сохранить контакт на диск в формате vCard (VCF). Используйте классы PersonalStorage и MapiContact для получения информации о контактах из файла PST. Чтобы получить информацию о контактах:

  1. Загрузите файл PST в класс PersonalStorage.
  2. Просмотрите папку Контакты.
  3. Получите содержимое папки Контакты, чтобы получить коллекцию сообщений.
  4. Пройдите через коллекцию сообщений.
  5. Вызовите метод PersonalStorage.extract_message(), чтобы получить информацию о контакте в классе MapiContact.
  6. Используйте различные свойства класса MapiContact для доступа к информации о контакте.

Программа ниже загружает файл PST с диска и сохраняет все контакты в формате vCard (VCF). Файлы VCF затем могут быть использованы в любой другой программе, которая может загрузить стандартный файл контактов vCard. Если вы откроете любой файл VCF в Microsoft Outlook, он будет выглядеть как на скриншоте ниже.

todo:image_alt_text
Следующий фрагмент кода показывает, как экспортировать контакты из Outlook PST в формат vCard (VCF).
from aspose.email.storage.pst import PersonalStorage
from aspose.email.mapi import ContactSaveFormat

# Загрузите файл PST Outlook
pst = PersonalStorage.from_file("my.pst")

# Получите папку Контакты
folder_info = pst.root_folder.get_sub_folder("Contacts")

# Пройдите через все контакты в этой папке
message_info_collection = folder_info.get_contents()
for message_info in message_info_collection:
    # Получите информацию о контакте
    contact = pst.extract_message(message_info).to_mapi_message_item()

    # Отобразите некоторые данные на экране
    print("Имя: " + contact.name_info.display_name + " - " + message_info.entry_id_string)

    # Сохраните на диск в формате vCard VCF
    contact.save("D:\\" + contact.name_info.display_name + ".vcf", ContactSaveFormat.V_CARD)

Работа с рассылками

С помощью API Aspose.Email можно создать рассылку, которая представляет собой коллекцию нескольких контактов. Рассылку можно сохранить на диск в формате Outlook MSG и просматривать/изменять, открыв ее в MS Outlook.

Создание и сохранение рассылки

Следующий фрагмент кода показывает, как создать и сохранить рассылку.

For complete examples and data files, please go to https://github.com/aspose-email/aspose-email-python-dotnet
displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"
displayName2 = "Wichert Kroos"
email2 = "WichertKroos@teleworm.us"
os.remove(dataDir + "CreateDistributionListInPST_out.pst")
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

# Загрузите MAPI сообщение из файла
message = MapiMessage.load("dl.msg")

# Преобразуйте сообщение в MAPI рассылку
dlist = message.to_mapi_message_item()