Quản lý danh bạ Outlook trong tệp PST

Tạo, Lưu và Đọc danh bạ

Aspose.Email cho phép bạn tạo và xử lý danh bạ Outlook. MapiContact lớp cung cấp tất cả các thuộc tính liên quan đến liên hệ cần thiết để tạo và thao tác một liên hệ Outlook. Bài viết này cho thấy cách tạo, lưu và đọc một liên hệ Outlook bằng cách sử dụng MapiContact lớp.

Tạo và lưu danh bạ Outlook

Để tạo một liên hệ và lưu nó vào đĩa, thực hiện các bước sau:

  1. Khởi tạo một đối tượng mới của MapiContact lớp.
  2. Nhập thông tin thuộc tính liên hệ.
  3. Thêm dữ liệu ảnh (nếu có).
  4. Lưu danh bạ dưới dạng MSG hoặc VCard.

Đoạn mã sau đây cho bạn thấy cách tạo và lưu một liên hệ 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)

Lưu liên hệ ở định dạng VCF Phiên bản 3

Để lưu một liên hệ ở định dạng VCF Phiên bản 3, sử dụng thuộc tính version của VCardSaveOptions lớp.

  1. Tạo một thể hiện mới của VCardSaveOptions lớp.
  2. Đặt thuộc tính version của đối tượng VCardSaveOptions thành VCardVersion.V30. Điều này đặt phiên bản vCard thành 3.0.
  3. Gọi lưu phương thức của đối tượng MapiContact, truyền tên tệp "contact.vcf" và đối tượng VCardSaveOptions làm tham số. Điều này lưu liên hệ dưới dạng tệp vCard với tên tệp và tùy chọn đã chỉ định.

Đoạn mã sau đây cho bạn thấy cách lưu một liên hệ ở định dạng VCF Phiên bản 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)

Tải liên hệ từ tệp MSG hoặc VCard

Cái MapiContact lớp có thể được sử dụng để tải cả liên hệ Outlook MSG và VCard.

Để tải một liên hệ từ MSG, sử dụng đoạn mã mẫu bên dưới:

Để tải một liên hệ từ VCard, sử dụng đoạn mã mẫu sau:

Tải liên hệ với mã hóa được chỉ định

Đoạn mã sau đây cho bạn thấy cách tải một liên hệ từ vcard với mã hóa được chỉ định.

Lưu tệp VCard với mã ký tự tùy chỉnh

Khi lưu tệp VCard, bạn có thể định nghĩa mã ký tự để đảm bảo tương thích với các ký tự không phải ASCII. Ví dụ, đặt thuộc tính preferred_text_encoding của VCardSaveOptions đối tượng thành "utf-8" đảm bảo mã hóa đúng cho văn bản không phải ASCII. Tính năng này đặc biệt hữu ích cho việc xử lý dữ liệu liên hệ đa ngôn ngữ. Dưới đây là ví dụ về cách cấu hình và lưu tệp vCard với mã ký tự tùy chỉnh:

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)

Lưu tệp VCard với các thuộc tính mở rộng

Ngoài các trường vCard tiêu chuẩn, bạn có thể nâng cao tệp vCard của mình bằng cách bao gồm các thuộc tính mở rộng. Đây là các thuộc tính bổ sung không được tiêu chuẩn vCard bao gồm, cho phép tùy chỉnh nhiều hơn. Để bật tính năng này, đặt thuộc tính use_extensions của VCardSaveOptions đặt lớp thành True. Điều này đặc biệt hữu ích cho việc thêm siêu dữ liệu tùy chỉnh hoặc đặc thù ứng dụng. Dưới đây là cách bạn có thể lưu tệp vCard với các thuộc tính mở rộng được bật:

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)

Đọc nhiều liên hệ trong định dạng VCard

Để lấy tất cả liên hệ từ VCard, bạn có thể sử dụng các phương thức:

  • is_multi_contacts phương thức xác định xem một luồng có nhiều liên hệ hay không.
  • load_as_multiple(file_path) phương thức tải danh sách tất cả các liên hệ từ tệp VCard.
  • load_as_multiple(stream) phương thức tải danh sách tất cả các liên hệ từ luồng VCard.

Đoạn mã dưới đây minh họa quy trình đọc nhiều liên hệ từ tệp 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")

Hiển thị thông tin liên hệ dưới dạng MHTML

Liên hệ Outlook có thể được chuyển đổi sang MHTML bằng API Aspose.Email. Đoạn mã mẫu sau đây minh họa cách tạo tệp MHTML chứa thông tin chi tiết của liên hệ ban đầu từ tệp MSG:

  1. Tải tệp MSG dưới dạng một MapiMessage đối tượng.
  2. Chuyển đổi tin nhắn sang định dạng EML.
  3. Chuẩn bị các tùy chọn lưu MHT:
    • Bật mã hóa nội dung thân và giữ nguyên ranh giới gốc.
    • Đặt tùy chọn định dạng MHT để ghi tiêu đề và hiển thị thông tin vCard.
  4. Xác định các trường cần hiển thị trong MHT.
  5. Lưu EML dưới dạng tệp MHTML.