Работа с контактами в 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()