Outlook Kişi Yönetimi

MapiMessage gibi, Aspose.Email de Outlook kişileri oluşturmanıza olanak tanır. MapiContact sınıf, bir Outlook kişisi oluşturmak için gereken tüm kişi ile ilgili özellikleri sağlar. Bu makale, bir Outlook kişisini oluşturma, kaydetme ve okuma konusunda nasıl yapılacağını gösterir: MapiContact sınıf.

Outlook Kişisi Oluştur ve Kaydet

Bir kişi oluşturup diske kaydetmek için:

  1. Yeni bir nesne örneği oluşturun MapiContact sınıf.
  2. Kişi özellik bilgilerini girin.
  3. Fotoğraf verisi ekle (varsa).
  4. Kişiyi MSG ya da VCard formatında kaydedin.

Aşağıdaki kod snippet’i, bir Outlook kişisi oluşturmayı ve kaydetmeyi gösterir.

MAPI Dağıtım Listelerini VCF Dosyalarına Kaydet

Aşağıdaki kod örneği, bir dağıtım listesini çoklu kişi VCF dosyasına nasıl kaydedeceğinizi gösterir:

// 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);

Çoklu Kişi VCF Dosyalarını MapiDistributionList’e Dönüştür

Aspose.Email, çoklu kişi VCF dosyalarını şu biçime dönüştürmeyi destekler: MapiDistributionList nesneleri, birden çok kişiyi doğrudan uygulamalarınıza yönetmeyi ve içe aktarmayı kolaylaştırır. Bu özellik, aşağıdaki statik yöntemler aracılığıyla erişilebilir: MapiDistributionList sınıf:

Aşağıdaki kod örneği, bu özelliğin nasıl kullanılacağını gösterir:

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

Kişileri VCF Formatında Kaydet

Kişiyi sürüm 3 VCF formatında kaydetmek için şunu kullanın: VCardVersion özelliği ayarlamak için kullanılabilir VCardSaveOptions.Version özellik. Aşağıdaki örnek kod kullanımını gösterir: VCardVersion kisi VCF sürüm 3 formatını kaydetmek için enumerable:

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

MAPI Kişilerini Okuma

Bu MapiContact sınıf, hem Outlook MSG hem de VCard formatındaki kişileri yüklemek için kullanılabilir. Aşağıdaki kod parçacığı, Outlook kişilerini MSG ve VCF olarak kaydedilmiş bir biçime nasıl yükleyeceğinizi gösterir: MapiContact.

MSG Dosyalarından Kişileri Yükle

Aşağıdaki kod parçacığı, MSG dosyasından kişileri nasıl yükleyeceğinizi gösterir.

VCard’tan Kişileri Yükle

Aşağıdaki kod parçacığı, VCard’tan kişileri nasıl yükleyeceğinizi gösterir.

Özel Seçeneklerle vCard’tan MAPI Kişilerini Yükle

vCard (.vcf) dosyalarını MAPI kişilerine dönüştürürken daha fazla esneklik sağlamak için Aspose.Email for .NET bir aşırı yükleme sunar MapiContact.FromVCard(string filePath, VCardLoadOptions options) kabul eden yöntem VCardLoadOptions nesnesine. Bu, vCard dosyalarının yorumlanması üzerinde daha iyi kontrol sağlar - özellikle farklı vCard formatları, kodlamalar veya gelişmiş ayrıştırma senaryoları ile çalışırken.

Aşağıdaki kod örneği, bir .vcf iletişim dosyasını şu nesneye nasıl yükleyeceğinizi gösterir: MapiContact kabul eden aşırı yüklemeyi kullanan nesne VCardLoadOptions. Yüklenen kişi, ardından PST dosyalarında, MSG dışa aktarmada veya diğer Outlook uyumlu formatlarda kullanılabilir.

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

Belirtilen Kodlama ile VCard’tan Kişileri Yükle

Aşağıdaki kod parçacığı, belirtilen kodlamayla VCard’tan kişileri nasıl yükleyeceğinizi gösterir.

Belirtilen Kodlama ile VCard Kişi Öğelerini Kaydet

VCard dosyalarıyla çalışırken kaydetme davranışını aşağıdakini kullanarak özelleştirin: VCardSaveOptions sınıf. PreferredTextEncoding sınıfın özelliği, VCard iletişim öğeleri kaydedilirken kullanılacak kodlamayı belirler.

Aşağıdaki kod örneği, bu özelliği projenizde nasıl uygulayacağınızı gösterir:

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

Genişletilmiş Alanlarla VCard Dosyalarını Kaydet

Bu UseExtensions özellik, VCard dosyaları kaydedilirken genişletilmiş alanların kullanılıp kullanılamayacağını kontrol etmenizi sağlar. true (varsayılan) olarak ayarlandığında, uzantılara izin verilir ve özel alanlar ile ek kişi bilgileriyle uyumluluk sağlanır.

VCard Formatında Birden Çok Kişi Oku

Kütüphanemiz, bir VCard’tan tüm kişilerin listesini almayı mümkün kılar. Aşağıdaki yöntemler ve adımlarla yapılabilir:

// 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)

Aşağıdaki kod parçacığı, birden fazla kişi içeren VCard dosyalarını nasıl ele alacağınızı gösterir:

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

vCard Kişilerini Asenkron Olarak Yükle

Bu VCardContact Aspose.Email for .NET’teki sınıf, vCard dosyalarının asenkron olarak yüklenmesini destekler. Bu, uygulamaların .vcf dosyalarından veya akışlarından tek veya birden fazla kişiyi ana iş parçacığını engellemeden verimli bir şekilde okumasına olanak tanır - büyük kişi listeleriyle çalışan modern masaüstü, web veya mobil uygulamalar için idealdir. Bu sınıfın aşağıdaki yöntemleri bu görevi yerine getirebilir:

  • LoadAsync

  • LoadAsMultipleAsync

Aşağıdaki kod örneği, VCardContact.LoadAsMultipleAsync kullanarak bir .vcf dosyasından asenkron olarak birden fazla vCard kişisini yüklemeyi gösterir. Yüklenen kişiler bir döngüde işlenir ve her bir kişinin görünen adı konsola yazdırılır. Asenkron yaklaşım, büyük dosyalar okunurken bile uygulamanın yanıt vermeye devam etmesini sağlar.

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

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

Kişi Bilgilerini MHTML’ye Renderla

Outlook Kişisi, Aspose.Email API kullanılarak MHTML’ye dönüştürülebilir. Bu örnek, bir VCard’ın ___‘a nasıl yüklendiğini gösterir. MapiContact ve ardından ___ yardımıyla MHTML’ye dönüştürülür 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);