Práce s kontakty Outlook
Vytváření, ukládání a čtení kontaktů
Stejně jako MapiMessage, Aspose.Email umožňuje vytvářet Outlook kontakty. Třída MapiContact poskytuje všechny vlastnosti související s kontakty potřebné k vytvoření Outlook kontaktu. Tento článek ukazuje, jak vytvořit, uložit a číst Outlook kontakt pomocí třídy MapiContact.
Vytvořit a uložit Outlook kontakt
Pro vytvoření kontaktu a jeho uložení na disk:
- Instancujte nový objekt třídy MapiContact.
- Zadejte informace o vlastnostech kontaktu.
- Přidejte data fotografie (pokud existují).
- Uložte kontakt ve formátu MSG nebo VCard.
Následující úryvek kódu ukazuje, jak vytvořit a uložit 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)
Uložení kontaktu ve formátu VCF verze 3
Pro uložení kontaktu ve formátu VCF verze 3 použijte vlastnost version objektu VCardSaveOptions třída. Vytvořte novou instanci třídy VCardSaveOptions, nastavte vlastnost version objektu VCardSaveOptions na VCardVersion.V30. Tím se nastaví verze vCard na 3.0., zavolejte metodu save objektu MapiContact a jako parametry předávejte název souboru "contact.vcf" a objekt VCardSaveOptions. Tím se kontakt uloží jako soubor vCard se zadaným názvem a možnostmi. Následující úryvek kódu ukazuje, jak uložit kontakt ve formátu VCF verze 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)
Čtení MapiContact
Třída MapiContact může být použita k načtení kontaktů ve formátech Outlook MSG i VCard. Následující úryvek kódu ukazuje, jak načíst Outlook kontakty uložené jako MSG a VCF do MapiContact.
Načtení kontaktu z MSG
Následující úryvek kódu ukazuje, jak načíst kontakt z MSG.
Načtení kontaktu z VCard
Následující úryvek kódu ukazuje, jak načíst kontakt z vCard.
Načtení kontaktu z VCard s určeným kódováním
Následující úryvek kódu ukazuje, jak načíst kontakt z VCard se specifickým kódováním.
Ukládání VCard kontaktů se specifikovaným kódováním
Při ukládání souboru vCard je možné specifikovat použité kódování znaků, aby byla zajištěna kompatibilita s ne‑ASCII znaky. Nastavte vlastnost preferred_text_encoding objektu VCardSaveOptions na "utf-8". Následující úryvek kódu ukazuje, jak implementovat tuto funkci do vašeho projektu:
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)
Ukládání VCard souborů s rozšířenými poli
Při ukládání souboru vCard můžete také specifikovat možnosti včetně použití rozšířených polí, což jsou dodatečné vlastnosti nebo atributy, které lze přidat do vCard nad rámec standardního souboru polí definovaného specifikací vCard. Vlastnost use_extensions třídy VCardSaveOptions třída vám to umožní. Následující úryvek kódu ukazuje, jak uložit soubor VCard s rozšířenými poli:
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)
Čtení více kontaktů ve formátu VCard
Budete potřebovat následující metody pro získání seznamu všech kontaktů z VCard:
# Checks whether VCard source stream contains multiple contacts.
aspose.email.personalinfo.vcard.VCardContact.is_multi_contacts(stream)
# Loads list of all contacts from VCard file.
aspose.email.personalinfo.vcard.VCardContact.load_as_multiple(file_path, encoding)
# Loads list of all contacts from VCard stream.
aspose.email.personalinfo.vcard.VCardContact.load_as_multiple(stream, encoding)
Níže uvedený úryvek kódu demonstruje proces čtení více kontaktů ze souboru VCard:
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")
Renderování informací o kontaktu do MHTML
Outlook kontakt může být převeden na MHTML pomocí Aspose.Email API. Tento příklad ukazuje, jak je VCard načtena do MapiContact a následně pomocí MailMessage API převedena na MHTML.