Работа с контакти в Outlook
Създаване, запазване и четене на контакти
Подобно на MapiMessage, Aspose.Email ви позволява да създавате Outlook контакти. Класът MapiContact предоставя всички свойства, свързани с контакти, необходими за създаване на Outlook контакт. Тази статия показва как да създадете, запазите и прочетете Outlook контакт, използвайки класа MapiContact.
Създаване и запазване на Outlook контакт
За да създадете контакт и да го запазите на диска:
- Създайте нов обект от класа MapiContact.
- Въведете информация за свойствата на контакта.
- Добавете данни за снимка (ако има).
- Запазете контакта във формат MSG или VCard.
Следният кодов откъс показва как да създадете и запазите 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)
Записване на контакт във формат VCF версия 3
За да запазите контакт във VCF формат версия 3, използвайте свойството version на VCardSaveOptions Клас. Създайте нов екземпляр на класа VCardSaveOptions, задайте свойството version на обекта VCardSaveOptions на VCardVersion.V30. Това задава версия 3.0 за vCard. Извикайте метода save на обекта MapiContact, като подадете името на файла "contact.vcf" и обекта VCardSaveOptions като параметри. Това запазва контакта като vCard файл с указаното име и опции. Следният кодов откъс показва как да запазите контакт във формат VCF версия 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)
Четене на MapiContact
Класът MapiContact може да се използва за зареждане на контакти както във формат Outlook MSG, така и VCard. Следният кодов откъс показва как да заредите Outlook контакти, запазени като MSG и VCF, в MapiContact.
Зареждане на контакт от MSG
Следният кодов откъс показва как да заредите контакт от MSG.
Зареждане на контакт от VCard
Следният кодов откъс показва как да заредите контакт от vCard.
Зареждане на контакт от VCard със зададено кодиране
Следният кодов откъс показва как да заредите контакт от vCard със зададено кодиране.
Запазване на VCard контакти със зададена кодировка
При запазване на vCard файл е възможно да се зададе кодировката на знаците, която да се използва, осигурявайки съвместимост с не-ASCII символи. Задайте свойството preferred_text_encoding на обекта VCardSaveOptions на "utf-8". Следният кодов откъс показва как да внедрите тази функция във вашия проект:
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 файлове с разширени полета
При запазване на vCard файл, можете също да зададете опции, включително използването на разширени полета, което са допълнителни свойства или атрибути, които могат да се добавят към vCard извън стандартния набор полета, дефиниран от спецификацията на vCard. Свойството use_extensions на VCardSaveOptions класът позволява да го направите. Следният кодов откъс показва как да запазите 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)
Четене на множество контакти във формат VCard
Ще ви трябват следните методи, за да получите списъка с всички контакти от 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)
Кодовият откъс по-долу ще демонстрира процеса на четене на множество контакти от 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")
Рендериране на информация за контакт в MHTML
Outlook Contact може да бъде конвертиран в MHTML, използвайки Aspose.Email API. Този пример показва как VCard се зарежда в MapiContact и след това се конвертира в MHTML с помощта на MailMessage API.