Работа с контактами в PST файле
Добавление контакта в PST
Создание нового файла PST и добавление подпапок показано, как создать файл PST и добавить к нему подпапку. С помощью Aspose.Email вы можете добавить MapiContact в подпапку Контакты файла PST, который вы создали или загрузили. Ниже приведены шаги для добавления MapiContact в PST:
- Создайте объект MapiContact.
- Установите свойства MapiContact, используя различные конструкторы и методы.
- Создайте PST с помощью метода PersonalStorage.create().
- Создайте предопределенную папку (Контакты) в корне файла 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 используются для получения и отображения информации о контактах. Шаги для получения информации о контактах:
- Загрузите файл PST в класс PersonalStorage.
- Просмотрите папку Контакты.
- Получите содержимое папки Контакты, чтобы получить коллекцию сообщений.
- Пройдите через коллекцию сообщений.
- Вызовите метод PersonalStorage.extract_message(), чтобы получить информацию о контакте в классе MapiMessage.
- Вызовите метод 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. Чтобы получить информацию о контактах:
- Загрузите файл PST в класс PersonalStorage.
- Просмотрите папку Контакты.
- Получите содержимое папки Контакты, чтобы получить коллекцию сообщений.
- Пройдите через коллекцию сообщений.
- Вызовите метод PersonalStorage.extract_message(), чтобы получить информацию о контакте в классе MapiContact.
- Используйте различные свойства класса MapiContact для доступа к информации о контакте.
Программа ниже загружает файл PST с диска и сохраняет все контакты в формате vCard (VCF). Файлы VCF затем могут быть использованы в любой другой программе, которая может загрузить стандартный файл контактов vCard. Если вы откроете любой файл VCF в Microsoft Outlook, он будет выглядеть как на скриншоте ниже.
![]() |
|---|
| Следующий фрагмент кода показывает, как экспортировать контакты из 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()
