Керування контактами Outlook у PST файлах
Додати контакти Outlook до PST‑файлів
Створити новий PST‑файл і додати підпапки демонструє, як створити PST‑файл і включити в нього підпапки. За допомогою Aspose.Email ви можете додати MapiContact до підпапки Contacts PST‑файла, який ви створили або завантажили. Нижче наведено кроки з додавання MapiContact до PST‑файлу:
- Створіть MapiContact об’єкт.
- Встановіть властивості MapiContact, такі як ім’я, стать, електронні адреси, номери телефонів, фізичні адреси та професійну інформацію, використовуючи різні конструктори та методи.
- Створіть PST за допомогою PersonalStorage.create() метод.
- Створіть заздалегідь визначену папку (Contacts) у корені файлу PST, отримавши доступ до кореневої папки і викликавши add_mapi_message_item() метод.
Наведений нижче фрагмент коду показує, як створити контакт MAPI і потім додати його до папки Contacts у новоствореному PST‑файлі:
Зберегти контакти Outlook у вигляді MSG‑файлів
Щоб отримати контактну інформацію з Outlook PST‑файлу та зберегти контакт на диск у форматі MSG, Aspose.Email надає PersonalStorage і MapiContact класів. Наведений нижче фрагмент коду показує, як отримати всю контактну інформацію з PST‑файлу і зберегти її на диск у форматі MSG:
- Завантажте файл PST у PersonalStorage клас.
- Перегляньте папку Contacts.
- Отримайте вміст папки Contacts, щоб отримати колекцію повідомлень.
- Переберіть колекцію повідомлень.
- Викличте PersonalStorage.extract_message() метод для отримання інформації про контакт у MapiMessage клас.
- Викличте MapiMessage.save() метод для збереження контакту на диск у форматі MSG.
Експортувати контакти Outlook у VCF‑файли
Щоб отримати контактну інформацію з Microsoft Outlook PST‑файлу та зберегти контакт на диск у форматі vCard (VCF), використайте PersonalStorage і MapiContact класів. Нижчий код завантажує PST‑файл з диска і зберігає всі контакти у форматі vCard (VCF). Файли VCF потім можна використовувати в будь‑якій іншій програмі, яка підтримує стандартний файл контакту vCard. Якщо відкрити будь‑який файл VCF у Microsoft Outlook, він виглядає як на скріншоті нижче.
![]() |
|---|
Наведений нижче фрагмент коду показує, як експортувати контакти з Outlook PST у формат vCard (VCF):
- Використати PersonalStorage.from_file для відкриття PST‑файлу.
- Отримати доступ до папки Contacts за допомогою get_sub_folder.
- Перебір контактів:
- Використати get_contents() щоб отримати всю інформацію про повідомлення в папці.
- Перебирайте message_info_collection з використанням циклу.
- Витягніть кожен контакт за допомогою pst.extract_message(message_info) і збережіть його як елемент повідомлення MAPI.
- Виведіть ім’я та entry ID кожного контакту.
- Збережіть контакт як 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‑файлу.
- Визначити дані контакту — встановити displayName та email для кожного контакту.
- Створіть новий PST‑файл за допомогою PersonalStorage.create() у форматі UNICODE.
- Створити папку Contacts за допомогою create_predefined_folder().
- Створити екземпляр MapiContact об’єктів з відображуваним ім’ям та електронною адресою, потім додайте контакти до папки за допомогою add_mapi_message_item().
- Створіть учасників списку розсилки, створивши екземпляр MapiDistributionListMember для кожного контакту та встановлюючи entry_id шляхом base64‑декодування.
- Додайте учасників до MapiDistributionListMemberCollection.
- Створіть список розсилки, створивши екземпляр MapiDistributionList, встановлюючи його тіло та тему.
- Використати 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)
