Verwalten von Outlook‑Kontakten in PST‑Dateien

Kontakte erstellen, speichern und lesen

Aspose.Email ermöglicht das Erstellen und Verarbeiten von Outlook‑Kontakten. Die MapiContact Klasse stellt alle kontaktbezogenen Eigenschaften bereit, die zum Erstellen und Verwalten eines Outlook‑Kontakts nötig sind. Dieser Artikel zeigt, wie man einen Outlook‑Kontakt erstellt, speichert und liest, indem man die MapiContact Klasse.

Outlook‑Kontakte erstellen und speichern

Um einen Kontakt zu erstellen und auf der Festplatte zu speichern, gehen Sie folgendermaßen vor:

  1. Instanziieren Sie ein neues Objekt der MapiContact Klasse.
  2. Kontakt‑Eigenschaftsinformationen eingeben.
  3. Fotodaten hinzufügen (falls vorhanden).
  4. Speichern Sie den Kontakt im MSG- oder VCard-Format.

Das folgende Code‑Snippet zeigt, wie man einen Outlook‑Kontakt erstellt und speichert:

import aspose.email as ae

data_dir = "path/to/data/directory"

contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
contact.professional_info = ae.mapi.MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant")
contact.personal_info.personal_home_page = "B2BTies.com"
contact.physical_addresses.work_address.address = "Im Astenfeld 59 8580 EDELSCHROTT"
contact.electronic_addresses.email1 = ae.mapi.MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com")
contact.telephones = ae.mapi.MapiContactTelephonePropertySet("06605045265")
contact.personal_info.children = ["child1", "child2", "child3"]
contact.categories = ["category1", "category2", "category3"]
contact.mileage = "Some test mileage"
contact.billing = "Test billing information"
contact.other_fields.journal = True
contact.other_fields.private = True
contact.other_fields.reminder_topic = "Test topic"
contact.other_fields.user_field1 = "ContactUserField1"
contact.other_fields.user_field2 = "ContactUserField2"
contact.other_fields.user_field3 = "ContactUserField3"
contact.other_fields.user_field4 = "ContactUserField4"

# Add a photo
with open(data_dir + "Desert.jpg", "rb") as file:
    buffer = file.read()
    contact.photo = ae.mapi.MapiContactPhoto(buffer, ae.mapi.MapiContactPhotoImageFormat.JPEG)

# Save the Contact in MSG format
contact.save(data_dir + "MapiContact_out.msg", ae.mapi.ContactSaveFormat.MSG)

# Save the Contact in VCF format
contact.save(data_dir + "MapiContact_out.vcf", ae.mapi.ContactSaveFormat.V_CARD)

Kontakte im VCF‑Format Version 3 speichern

Um einen Kontakt im VCF‑Format Version 3 zu speichern, verwenden Sie die Eigenschaft version des VCardSaveOptions Klasse.

  1. Erstellen Sie eine neue Instanz von VCardSaveOptions Klasse.
  2. Setzen Sie die Eigenschaft version des VCardSaveOptions‑Objekts auf VCardVersion.V30. Damit wird die vCard‑Version auf 3.0 gesetzt.
  3. Rufen Sie die Speichern Methode des MapiContact-Objekts, wobei der Dateiname "contact.vcf" und das VCardSaveOptions-Objekt als Parameter übergeben werden. Damit wird der Kontakt als vCard‑Datei mit dem angegebenen Dateinamen und den Optionen gespeichert.

Das folgende Code‑Snippet zeigt, wie man einen Kontakt im VCF‑Format Version 3 speichert:

import aspose.email as ae

contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.version = ae.personalinfo.vcard.VCardVersion.V30
contact.save("contact.vcf", options)

Kontakte aus MSG‑ oder VCard‑Dateien laden

Die MapiContact Klasse kann verwendet werden, um sowohl Outlook‑MSG‑ als auch VCard‑Format‑Kontakte zu laden.

Um einen Kontakt aus einer MSG‑Datei zu laden, verwenden Sie das nachstehende Codebeispiel:

Um einen Kontakt aus einer VCard zu laden, verwenden Sie das folgende Codebeispiel:

Kontakte mit angegebenem Encoding laden

Das folgende Code‑Snippet zeigt, wie man einen Kontakt aus einer VCard mit angegebenem Encoding lädt.

VCard‑Dateien mit benutzerdefinierter Zeichenkodierung speichern

Beim Speichern einer vCard‑Datei können Sie die Zeichenkodierung festlegen, um die Kompatibilität mit Nicht‑ASCII‑Zeichen zu gewährleisten. Zum Beispiel durch Setzen der preferred_text_encoding-Eigenschaft des VCardSaveOptions Objekt auf "utf-8" zu setzen, stellt die korrekte Kodierung von Nicht‑ASCII‑Text sicher. Dieses Feature ist besonders nützlich für die Handhabung mehrsprachiger Kontaktdaten. Im Folgenden ein Beispiel, wie man eine vCard‑Datei mit benutzerdefinierter Zeichenkodierung konfiguriert und speichert:

import aspose.email as ae

contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.preferred_text_encoding = "utf-8"
contact.save("contact.vcf", options)

VCard‑Dateien mit erweiterten Eigenschaften speichern

Zusätzlich zu den Standard‑vCard‑Feldern können Sie Ihre vCard‑Dateien durch das Einbinden erweiterter Eigenschaften aufwerten. Diese zusätzlichen Attribute werden nicht von der Standard‑vCard‑Spezifikation abgedeckt und ermöglichen mehr Anpassungen. Um dies zu aktivieren, setzen Sie die use_extensions‑Eigenschaft des VCardSaveOptions Klasse auf True setzen. Dies ist besonders vorteilhaft, um benutzerdefinierte oder anwendungsspezifische Metadaten hinzuzufügen. So können Sie eine vCard‑Datei mit aktivierten erweiterten Eigenschaften speichern:

import aspose.email as ae

contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.use_extensions = True
contact.save("contact.vcf", options)

Mehrere Kontakte im VCard‑Format lesen

Um alle Kontakte aus einer VCard abzurufen, können Sie das folgende Methoden:

  • is_multi_contacts‑Methode bestimmt, ob ein Stream mehrere Kontakte enthält.
  • load_as_multiple(file_path)‑Methode lädt eine Liste aller Kontakte aus einer VCard‑Datei.
  • load_as_multiple(stream)‑Methode lädt eine Liste aller Kontakte aus einem VCard‑Stream.

Das folgende Code‑Snippet demonstriert das Einlesen mehrerer Kontakte aus einer VCard‑Datei:

import aspose.email as ae

contact = ae.mapi.MapiContact()
contact.name_info = ae.mapi.MapiContactNamePropertySet("Bertha", "A.", "Buell")
options = ae.personalinfo.vcard.VCardSaveOptions()
options.use_extensions = True
contact.save("contact.vcf", options)

if ae.personalinfo.vcard.VCardContact.is_multi_contacts("contact.vcf"):
    ae.personalinfo.vcard.VCardContact.load_as_multiple("contact.vcf")

Kontaktinformationen nach MHTML rendern

Ein Outlook‑Kontakt kann mit der Aspose.Email‑API in MHTML konvertiert werden. Das folgende Codebeispiel zeigt, wie man eine MHTML‑Datei erzeugt, die detaillierte Kontaktdaten aus einer MSG‑Datei enthält:

  1. Laden Sie die MSG‑Datei als ein MapiMessage Objekt.
  2. Konvertieren Sie die Nachricht ins EML‑Format.
  3. MHT‑Speicheroptionen vorbereiten:
    • Kodierung des Nachrichteninhalts aktivieren und ursprüngliche Grenzen beibehalten.
    • MHT‑Formatoptionen festlegen, um Header zu schreiben und vCard‑Informationen zu rendern.
  4. Felder definieren, die im MHT gerendert werden sollen.
  5. Speichern Sie das EML als MHTML‑Datei.