Lavorare con i contatti di Outlook
Creazione, salvataggio e lettura di contatti
Come MapiMessage, Aspose.Email consente di creare contatti Outlook. La classe MapiContact fornisce tutte le proprietà correlate ai contatti necessarie per creare un contatto Outlook. Questo articolo mostra come creare, salvare e leggere un contatto Outlook usando la classe MapiContact.
Crea e salva un contatto Outlook
Per creare un contatto e salvarlo su disco:
- Instanziare un nuovo oggetto della classe MapiContact.
- Inserisci le informazioni delle proprietà del contatto.
- Aggiungi dati foto (se presenti).
- Salva il contatto in formato MSG o VCard.
Il frammento di codice seguente mostra come creare e salvare un contatto Outlook.
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)
Salva contatto in formato VCF Versione 3
Per salvare un contatto in formato VCF Versione 3, usa la proprietà version del VCardSaveOptions classe. Creare una nuova istanza della classe VCardSaveOptions, impostare la proprietà version dell’oggetto VCardSaveOptions a VCardVersion.V30. Questo imposta la versione vCard a 3.0. Chiamare il metodo save dell’oggetto MapiContact, passando il nome file "contact.vcf" e l’oggetto VCardSaveOptions come parametri. Questo salva il contatto come file vCard con il nome e le opzioni specificate. Il frammento di codice seguente mostra come salvare un contatto in formato VCF Versione 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)
Lettura di un MapiContact
La classe MapiContact può essere usata per caricare contatti sia in formato Outlook MSG sia VCard. Il frammento di codice seguente mostra come caricare contatti Outlook salvati come MSG e VCF in un MapiContact.
Caricamento di un contatto da MSG
Il frammento di codice seguente mostra come caricare un contatto da MSG.
Caricamento di un contatto da VCard
Il frammento di codice seguente mostra come caricare un contatto da VCard.
Caricamento di un contatto da VCard con codifica specificata
Il frammento di codice seguente mostra come caricare un contatto da vcard con codifica specificata.
Salvataggio di contatti VCard con codifica specificata
Quando si salva un file vCard, è possibile specificare la codifica dei caratteri da utilizzare garantendo la compatibilità con caratteri non ASCII. Impostare la proprietà preferred_text_encoding dell’oggetto VCardSaveOptions a "utf-8". Il frammento di codice seguente mostra come implementare questa funzione nel tuo progetto:
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)
Salvataggio di file VCard con campi estesi
Quando si salva un file vCard, è possibile specificare anche opzioni tra cui l’uso di campi estesi che sono proprietà o attributi aggiuntivi che possono essere aggiunti a una vCard oltre al set standard di campi definito dalla specifica vCard. La proprietà use_extensions del VCardSaveOptions la classe permette di farlo. Il frammento di codice seguente mostra come salvare un file VCard con campi estesi:
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)
Lettura di più contatti in formato VCard
Avrai bisogno dei seguenti metodi per ottenere l’elenco di tutti i contatti da una 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)
Il frammento di codice qui sotto dimostrerà il processo di lettura di più contatti da un file 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")
Renderizzazione delle Informazioni del Contatto in MHTML
Un contatto Outlook può essere convertito in MHTML usando l’API Aspose.Email. Questo esempio mostra come una VCard viene caricata in MapiContact e poi convertita in MHTML con l’ausilio dell’API MailMessage.