Manajemen Kontak Outlook

Seperti MapiMessage, Aspose.Email memungkinkan Anda membuat kontak Outlook. The MapiContact kelas menyediakan semua properti terkait kontak yang diperlukan untuk membuat kontak Outlook. Artikel ini menunjukkan cara membuat, menyimpan, dan membaca kontak Outlook menggunakan MapiContact kelas.

Buat dan Simpan Kontak Outlook

Untuk membuat kontak dan menyimpannya ke disk:

  1. Instansiasi objek baru dari MapiContact kelas.
  2. Masukkan informasi properti kontak.
  3. Tambahkan data foto (jika ada).
  4. Simpan kontak dalam format MSG atau VCard.

Potongan kode berikut menunjukkan cara membuat dan menyimpan kontak Outlook.

Simpan Daftar Distribusi MAPI ke File VCF

Contoh kode di bawah ini menunjukkan cara menyimpan daftar distribusi ke file VCF multi-kontak:

// convert the `msg` object to a `MapiMessage` object
var dlist = (MapiDistributionList)msg.ToMapiMessageItem();

//save the distribution list
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
dlist.Save("distribution_list.vcf", options);

Konversi File VCF Multi-Kontak menjadi MapiDistributionList

Aspose.Email mendukung konversi file VCF multi-kontak menjadi MapiDistributionList objek, memudahkan mengelola dan mengimpor banyak kontak langsung ke aplikasi Anda. Fitur ini dapat diakses melalui metode statis berikut dalam MapiDistributionList kelas:

Contoh kode di bawah ini menunjukkan cara menggunakan fitur ini:

// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);

Simpan Kontak dalam Format VCF

Untuk menyimpan kontak dalam format VCF versi 3, gunakan VCardVersion enumerasi untuk mengatur VCardSaveOptions.Version properti. Kode contoh berikut menunjukkan penggunaan VCardVersion enumerable untuk menyimpan kontak dalam format VCF versi 3:

var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
options.Version = VCardVersion.V30;
dlist.Save("distribution_list.vcf", options);

Membaca Kontak MAPI

The MapiContact kelas dapat digunakan untuk memuat kontak format Outlook MSG dan VCard. Potongan kode berikut menunjukkan cara memuat kontak Outlook yang disimpan sebagai MSG dan VCF ke dalam MapiContact.

Muat Kontak dari File MSG

Potongan kode berikut menunjukkan cara memuat kontak dari MSG.

Muat Kontak dari VCard

Potongan kode berikut menunjukkan cara memuat kontak dari VCard.

Muat Kontak MAPI dari vCard dengan Opsi Kustom

Untuk memberikan fleksibilitas lebih saat mengonversi file vCard (.vcf) menjadi kontak MAPI, Aspose.Email untuk .NET menyediakan overload MapiContact.FromVCard(string filePath, VCardLoadOptions options) metode yang menerima sebuah VCardLoadOptions objek. Ini menawarkan kontrol yang lebih baik atas interpretasi file vCard - terutama saat bekerja dengan format vCard yang berbeda, enkoding, atau skenario parsing lanjutan.

Contoh kode berikut menunjukkan cara memuat file kontak .vcf ke dalam sebuah MapiContact objek menggunakan overload yang menerima VCardLoadOptions. Kontak yang dimuat kemudian dapat digunakan dalam file PST, ekspor MSG, atau format kompatibel Outlook lainnya.

var mapiContact = MapiContact.FromVCard("contact.vcf", new VCardLoadOptions());
Console.WriteLine(mapiContact.NameInfo.DisplayName);

Muat Kontak dari VCard dengan Enkoding Tertentu

Potongan kode berikut menunjukkan cara memuat kontak dari VCard dengan enkoding yang ditentukan.

Simpan Item Kontak VCard dengan Enkoding Tertentu

Sesuaikan perilaku penyimpanan saat bekerja dengan file VCard menggunakan VCardSaveOptions kelas. The PreferredTextEncoding properti kelas akan menentukan enkoding yang digunakan saat menyimpan item kontak VCard.

Contoh kode berikut menunjukkan cara mengimplementasikan properti ini dalam proyek Anda:

var cont = VCardContact.Load(fileName, Encoding.UTF8);
var opt = new VCardSaveOptions();
opt.PreferredTextEncoding = Encoding.UTF8;
cont.Save("my.vcard", opt);

Simpan File VCard dengan Bidang Ekstended

The UseExtensions properti memungkinkan Anda mengontrol apakah bidang ekstended dapat digunakan saat menyimpan file vCard. Ketika diset ke true (default), ekstensi diizinkan, memberikan kompatibilitas dengan bidang kustom dan informasi kontak tambahan.

Baca Banyak Kontak dalam Format VCard

Perpustakaan kami memungkinkan mendapatkan daftar semua kontak dari VCard. Hal ini dapat dilakukan menggunakan metode dan langkah berikut:

// Checks whether VCard source stream contains multiple contacts.
VCardContact.IsMultiContacts(Stream stream)

// Loads list of all contacts from VCard file.
VCardContact.LoadAsMultiple(string filePath, Encoding encoding)

// Loads list of all contacts from VCard stream.
VCardContact.LoadAsMultiple(Stream stream, Encoding encoding)

Potongan kode berikut menunjukkan cara menangani file VCard yang berisi banyak kontak:

using (FileStream stream = new FileStream("test.vcf", FileMode.Open, FileAccess.Read))
{
    if(VCardContact.IsMultiContacts(stream))
    {
        List<VCardContact> contacts = VCardContact.LoadAsMultiple(stream, Encoding.UTF8);
    }
}

Muat Kontak vCard Secara Asinkron

The VCardContact kelas dalam Aspose.Email untuk .NET mendukung pemuatan asinkron file vCard. Ini memungkinkan aplikasi secara efisien membaca satu atau beberapa kontak dari file .vcf atau stream tanpa memblokir thread utama - ideal untuk aplikasi desktop, web, atau seluler modern yang menangani daftar kontak besar. Metode berikut dari kelas ini dapat melakukan tugas tersebut:

  • LoadAsync

  • LoadAsMultipleAsync

Contoh kode berikut menunjukkan cara memuat secara asinkron banyak kontak vCard dari file .vcf menggunakan VCardContact.LoadAsMultipleAsync. Kontak yang dimuat diproses dalam loop, mencetak nama tampilan masing-masing kontak ke konsol. Pendekatan asinkron memastikan aplikasi tetap responsif, bahkan saat membaca file besar.

var contacts = await VCardContact.LoadAsMultipleAsync("contacts.vcf", new VCardLoadOptions(), CancellationToken.None);

foreach (var contact in contacts)
{
    Console.WriteLine(contact.IdentificationInfo.DisplayName);
}

Render Informasi Kontak ke MHTML

Kontak Outlook dapat dikonversi ke MHTML menggunakan Aspose.Email API. Contoh ini menunjukkan bagaimana VCard dimuat ke dalam MapiContact dan kemudian dikonversi ke MHTML dengan bantuan MailMessage API.

//Load VCF Contact and convert to MailMessage for rendering to MHTML
var contact = MapiContact.FromVCard("Contact.vcf");

MemoryStream ms = new MemoryStream();
contact.Save(ms, ContactSaveFormat.Msg);
ms.Position = 0;
MapiMessage msg = MapiMessage.Load(ms, new MsgLoadOptions());
MailConversionOptions op = new MailConversionOptions();
MailMessage eml = msg.ToMailMessage(op);

//Prepare the MHT format options
MhtSaveOptions mhtSaveOptions = new MhtSaveOptions();
mhtSaveOptions.CheckBodyContentEncoding = true;
mhtSaveOptions.PreserveOriginalBoundaries = true;
MhtFormatOptions formatOp = MhtFormatOptions.WriteHeader | MhtFormatOptions.RenderVCardInfo;
mhtSaveOptions.RenderedContactFields = ContactFieldsSet.NameInfo | ContactFieldsSet.PersonalInfo | ContactFieldsSet.Telephones | ContactFieldsSet.Events;
mhtSaveOptions.MhtFormatOptions = formatOp;
eml.Save("ContactMhtml_out.mhtml", mhtSaveOptions);