Hantera Outlook-kontakter i PST-filer

Skapa, spara och läsa kontakter

Aspose.Email låter dig skapa och hantera Outlook‑kontakter. Den MapiContact klass tillhandahåller alla kontaktrelaterade egenskaper som krävs för att skapa och manipulera en Outlook‑kontakt. Denna artikel visar hur du skapar, sparar och läser en Outlook‑kontakt med hjälp av MapiContact klass.

Skapa och spara Outlook-kontakter

För att skapa en kontakt och spara den på disk, följ dessa steg:

  1. Instansiera ett nytt objekt av MapiContact klass.
  2. Ange kontaktens egenskapsinformation.
  3. Lägg till fotodata (om någon).
  4. Spara kontakten som MSG- eller VCard-format.

Följande kodsnutt visar hur du skapar och sparar en Outlook‑kontakt:

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)

Spara kontakter i VCF-format version 3

För att spara en kontakt i VCF-format version 3, använd version-egenskapen i VCardSaveOptions klass.

  1. Skapa en ny instans av VCardSaveOptions klass.
  2. Ställ in versionsegenskapen i VCardSaveOptions-objektet till VCardVersion.V30. Detta sätter vCard-versionen till 3.0.
  3. Anropa spara metod i MapiContact-objektet, där du skickar filnamnet "contact.vcf" och VCardSaveOptions-objektet som parametrar. Detta sparar kontakten som en vCard-fil med det angivna filnamnet och alternativen.

Följande kodsnutt visar hur du sparar en kontakt i VCF-format version 3:

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)

Ladda kontakter från MSG- eller VCard-filer

Den MapiContact klass kan användas för att ladda både Outlook MSG- och VCard-formatkontakter.

För att ladda en kontakt från MSG, använd kodexemplet nedan:

För att ladda en kontakt från VCard, använd följande kodexempel:

Ladda kontakter med specificerad kodning

Följande kodsnutt visar hur du laddar en kontakt från vCard med specificerad kodning.

Spara VCard‑filer med anpassad teckenkodning

När du sparar en vCard‑fil kan du definiera teckenkodning för att säkerställa kompatibilitet med icke‑ASCII‑tecken. Till exempel, genom att sätta preferred_text_encoding-egenskapen i VCardSaveOptions objektet till "utf-8" säkerställer korrekt kodning av icke‑ASCII‑text. Denna funktion är särskilt användbar för att hantera flerspråkig kontaktdata. Nedan är ett exempel på hur du konfigurerar och sparar en vCard‑fil med anpassad teckenkodning:

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)

Spara VCard‑filer med utökade egenskaper

Förutom standardvCard‑fält kan du förbättra dina vCard‑filer genom att inkludera utökade egenskaper. Dessa är ytterligare attribut som inte täcks av standard‑vCard‑specifikationen, vilket möjliggör större anpassning. För att aktivera detta, sätt use_extensions-egenskapen i VCardSaveOptions klass till True. Detta är särskilt fördelaktigt för att lägga till anpassad eller applikationsspecifik metadata. Så här kan du spara en vCard‑fil med aktiverade utökade egenskaper:

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)

Läs flera kontakter i VCard-format

För att hämta alla kontakter från en VCard, kan du använda följande metoder:

  • is_multi_contacts-metoden avgör om en ström har flera kontakter.
  • load_as_multiple(file_path)‑metoden laddar en lista med alla kontakter från en VCard‑fil.
  • load_as_multiple(stream)‑metoden laddar en lista med alla kontakter från en VCard‑ström.

Kodsnutten nedan demonstrerar processen för att läsa flera kontakter från en VCard‑fil:

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")

Rendera kontaktinformation till MHTML

Outlook‑kontakt kan konverteras till MHTML med Aspose.Email API. Följande kodexempel visar hur du genererar en MHTML‑fil som innehåller detaljerad kontaktinformation ursprungligen från en MSG‑fil:

  1. Läs MSG-filen som en MapiMessage objekt.
  2. Konvertera meddelandet till EML‑format.
  3. Förbered MHT‑sparalternativ:
    • Aktivera kodning av brödtextinnehåll och bevara ursprungliga gränser.
    • Ställ in MHT-formatalternativ för att skriva rubriker och rendera vCard‑information.
  4. Definiera fält att rendera i MHT.
  5. Spara EML som en MHTML-fil.