Praca z kontaktami Outlook
Tworzenie, zapisywanie i odczytywanie kontaktów
Podobnie jak MapiMessage, Aspose.Email umożliwia tworzenie kontaktów Outlook. Klasa MapiContact udostępnia wszystkie właściwości związane z kontaktem niezbędne do utworzenia kontaktu Outlook. Ten artykuł pokazuje, jak tworzyć, zapisywać i odczytywać kontakt Outlook przy użyciu klasy MapiContact.
Utwórz i zapisz kontakt Outlook
Aby utworzyć kontakt i zapisać go na dysku:
- Utwórz nowy obiekt klasy MapiContact.
- Wprowadź informacje właściwości kontaktu.
- Dodaj dane zdjęcia (jeśli istnieją).
- Zapisz kontakt w formacie MSG lub VCard.
Poniższy fragment kodu pokazuje, jak utworzyć i zapisać kontakt 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)
Zapisz kontakt w formacie VCF wersja 3
Aby zapisać kontakt w formacie VCF wersja 3, użyj właściwości version w VCardSaveOptions Utwórz nową instancję klasy VCardSaveOptions, ustaw właściwość version obiektu VCardSaveOptions na VCardVersion.V30. To ustawia wersję vCard na 3.0., wywołaj metodę save obiektu MapiContact, przekazując nazwę pliku "contact.vcf" oraz obiekt VCardSaveOptions jako parametry. To zapisuje kontakt jako plik vCard o podanej nazwie i opcjach. Poniższy fragment kodu pokazuje, jak zapisać kontakt w formacie VCF wersja 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)
Odczytywanie MapiContact
Klasa MapiContact może być użyta do wczytywania kontaktów w formacie Outlook MSG oraz VCard. Poniższy fragment kodu pokazuje, jak wczytać kontakty Outlook zapisane jako MSG i VCF do obiektu MapiContact.
Wczytywanie kontaktu z MSG
Poniższy fragment kodu pokazuje, jak wczytać kontakt z pliku MSG.
Wczytywanie kontaktu z VCard
Poniższy fragment kodu pokazuje, jak wczytać kontakt z vCard.
Wczytywanie kontaktu z VCard z określonym kodowaniem
Poniższy fragment kodu pokazuje, jak wczytać kontakt z vCard przy określonym kodowaniu.
Zapisywanie elementów kontaktów VCard z określonym kodowaniem
Podczas zapisywania pliku vCard można określić kodowanie znaków, aby zapewnić kompatybilność z znakami nie‑ASCII. Ustaw właściwość preferred_text_encoding obiektu VCardSaveOptions na "utf-8". Poniższy fragment kodu pokazuje, jak wdrożyć tę funkcję w projekcie:
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)
Zapisywanie plików VCard z rozszerzonymi polami
Podczas zapisywania pliku vCard można również określić opcje, w tym użycie rozszerzonych pól, czyli dodatkowych właściwości lub atrybutów, które można dodać do vCard oprócz standardowego zestawu pól określonych w specyfikacji vCard. Właściwość use_extensions klasy VCardSaveOptions klasa pozwala to zrobić. Poniższy fragment kodu pokazuje, jak zapisać plik VCard z rozszerzonymi polami:
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)
Odczytywanie wielu kontaktów w formacie VCard
Do uzyskania listy wszystkich kontaktów z VCard będą potrzebne następujące metody:
# 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)
Poniższy fragment kodu pokaże proces odczytywania wielu kontaktów z pliku 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")
Renderowanie informacji kontaktowych do MHTML
Kontakt Outlook można skonwertować do MHTML przy użyciu API Aspose.Email. Ten przykład pokazuje, jak VCard jest wczytywany do MapiContact, a następnie konwertowany do MHTML przy pomocy API MailMessage.