Zarządzanie kontaktami Outlook w plikach PST

Dodaj kontakty Outlook do plików PST

Utwórz nowy plik PST i dodaj podfoldery pokazuje, jak utworzyć plik PST i zawrzeć w nim podfoldery. Z Aspose.Email możesz dodać MapiContact do podfolderu Kontakty w pliku PST, który utworzyłeś lub załadowałeś. Poniżej znajdują się kroki dodawania MapiContact do pliku PST:

  1. Utwórz MapiContact obiekt.
  2. Ustaw właściwości MapiContact, takie jak imię, płeć, adresy e-mail, numery telefonów, adresy fizyczne i informacje zawodowe, używając różnych konstruktorów i metod.
  3. Utwórz PST przy użyciu PersonalStorage.create() metoda.
  4. Utwórz predefiniowany folder (Contacts) w głównym katalogu pliku PST, uzyskując dostęp do folderu głównego i wywołując add_mapi_message_item() metoda.

Poniższy fragment kodu pokazuje, jak utworzyć kontakt MAPI, a następnie dodać go do folderu Kontakty w nowo utworzonym pliku PST:

Zapisz kontakty Outlook jako pliki MSG

Aby uzyskać dostęp do informacji kontaktowych z pliku Outlook PST i zapisać kontakt na dysku w formacie MSG, Aspose.Email udostępnia PersonalStorage oraz MapiContact klasy. Poniższy fragment kodu pokazuje, jak pobrać wszystkie informacje kontaktowe z pliku PST i zapisać je na dysku w formacie MSG:

  1. Załaduj plik PST w PersonalStorage klasa.
  2. Przeglądaj folder Contacts.
  3. Pobierz zawartość folderu Contacts, aby uzyskać kolekcję wiadomości.
  4. Iteruj po kolekcji wiadomości.
  5. Wywołaj PersonalStorage.extract_message() metoda do pobrania informacji kontaktu w MapiMessage klasa.
  6. Wywołaj MapiMessage.save() metoda do zapisu kontaktu na dysku w formacie MSG.

Eksportuj kontakty Outlook jako pliki VCF

Aby uzyskać dostęp do informacji kontaktowych z pliku Microsoft Outlook PST i zapisać kontakt na dysku w formacie vCard (VCF), użyj PersonalStorage i MapiContact klasy. Poniższy kod ładuje plik PST z dysku i zapisuje wszystkie kontakty do formatu vCard (VCF). Pliki VCF mogą być następnie użyte w dowolnym programie obsługującym standardowy plik kontaktowy vCard. Jeśli otworzysz dowolny plik VCF w Microsoft Outlook, wygląda on jak na zrzucie ekranu poniżej.

todo:image_alt_text

Poniższy fragment kodu pokazuje, jak wyeksportować kontakty z Outlook PST do formatu vCard (VCF):

  1. Użyj PersonalStorage.from_file aby otworzyć plik PST.
  2. Uzyskaj dostęp do folderu Kontakty używając get_sub_folder.
  3. Pętla przez kontakty:
  4. Wyodrębnij każdy kontakt przy użyciu pst.extract_message(message_info) i zapisz go jako element wiadomości MAPI.
  5. Wydrukuj nazwę i entry ID każdego kontaktu.
  6. Zapisz kontakt jako plik VCF przy użyciu 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)

Zarządzanie listami dystrybucyjnymi Outlook w plikach PST

API Aspose.Email for Python umożliwia tworzenie listy dystrybucyjnej – zbioru wielu kontaktów. Listę dystrybucyjną można zapisać na dysku w formacie Outlook MSG i przeglądać/edytować, otwierając ją w MS Outlook.

Utwórz i zapisz listy dystrybucyjne

Poniższy fragment kodu demonstruje, jak utworzyć plik PST i dodać listę dystrybucyjną. Obejmuje również tworzenie i dodawanie kontaktów do listy dystrybucyjnej w pliku PST.

  1. Zdefiniuj szczegóły kontaktu - ustaw displayName i e-mail dla każdego kontaktu.
  2. Utwórz nowy plik PST przy użyciu PersonalStorage.create() w formacie UNICODE.
  3. Utwórz folder Kontaktów przy użyciu create_predefined_folder().
  4. Instancjuj MapiContact obiektów z nazwą wyświetlaną i e-mailem, a następnie dodaj kontakty do folderu używając add_mapi_message_item().
  5. Utwórz członków listy dystrybucyjnej, tworząc instancję MapiDistributionListMember dla każdego kontaktu i ustawiając entry_id przy dekodowaniu base64.
  6. Dodaj członków do MapiDistributionListMemberCollection.
  7. Utwórz listę dystrybucyjną, tworząc instancję MapiDistributionList, ustawiając jej treść i temat.
  8. Użyj add_mapi_message_item() aby dodać listę dystrybucyjną do folderu kontaktów.
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);

Odczytaj listy dystrybucyjne z plików PST

Poniższy fragment kodu pokazuje, jak odczytać listę dystrybucyjną z pliku 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()

Aktualizuj listy dystrybucyjne w plikach Outlook PST

Aby zaktualizować listę dystrybucyjną w pliku PST, na przykład dodać nowego członka, użyj poniższego przykładu kodu:

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)