Outlook Kişi Yönetimi
Bu makale bağımsız Outlook MapiContact MSG veya vCard (VCF) olarak kaydedilen öğeler. Format bağımsız VCardContact vCard dosyalarını doğrudan okuyan ve yazan sınıf, bakınız vCard (VCF) Dosyalarıyla Çalışma. PST içinde kişiler depolamak ve okumak için bakınız PST Dosyalarında Kişileri Yönetme.
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:
- Yeni bir nesne örneği oluşturun MapiContact sınıf.
- Kişi özellik bilgilerini girin.
- Fotoğraf verisi ekle (varsa).
- 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.
// The path to the File directory.
string dataDir = RunExamples.GetDataDir_Outlook();
MapiContact contact = new MapiContact();
contact.NameInfo = new MapiContactNamePropertySet("Bertha", "A.", "Buell");
contact.ProfessionalInfo = new MapiContactProfessionalPropertySet("Awthentikz", "Social work assistant");
contact.PersonalInfo.PersonalHomePage = "B2BTies.com";
contact.PhysicalAddresses.WorkAddress.Address = "Im Astenfeld 59 8580 EDELSCHROTT";
contact.ElectronicAddresses.Email1 = new MapiContactElectronicAddress("Experwas", "SMTP", "BerthaABuell@armyspy.com");
contact.Telephones = new MapiContactTelephonePropertySet("06605045265");
contact.PersonalInfo.Children = new string[] { "child1", "child2", "child3" };
contact.Categories = new string[] { "category1", "category2", "category3" };
contact.Mileage = "Some test mileage";
contact.Billing = "Test billing information";
contact.OtherFields.Journal = true;
contact.OtherFields.Private = true;
contact.OtherFields.ReminderTime = new DateTime(2014, 1, 1, 0, 0, 55);
contact.OtherFields.ReminderTopic = "Test topic";
contact.OtherFields.UserField1 = "ContactUserField1";
contact.OtherFields.UserField2 = "ContactUserField2";
contact.OtherFields.UserField3 = "ContactUserField3";
contact.OtherFields.UserField4 = "ContactUserField4";
// Add a photo
using (FileStream fs = File.OpenRead(dataDir + "Desert.jpg"))
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
contact.Photo = new MapiContactPhoto(buffer,
MapiContactPhotoImageFormat.Jpeg);
}
// Save the Contact in MSG format
contact.Save(dataDir + "MapiContact_out.msg",ContactSaveFormat.Msg);
// Save the Contact in VCF format
contact.Save(dataDir + "MapiContact_out.vcf", ContactSaveFormat.VCard);
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 `MapiDistributionList` 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:
- static MapiDistributionList FromVCF(string filePath)
- static MapiDistributionList FromVCF(Stream stream)
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 numaralandırma, VCardSaveOptions.Version özellik. Aşağıdaki örnek kod kullanımını gösterir: VCardVersion numaralandırma ile iletiyi VCF sürüm 3 formatında kaydetmek için:
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.
MapiMessage msg = MapiMessage.FromFile(dataDir + "Contact.msg");
MapiContact contact = (MapiContact)msg.ToMapiMessageItem();
Console.WriteLine(contact.NameInfo.DisplayName);
VCard’tan Kişileri Yükle
Aşağıdaki kod parçacığı, bir vCard dosyasını bir MapiContact kullanarak FromVCard yöntemi. Bir vCard’ı bir VCardContact yerine, bakınız vCard (VCF) Dosyalarıyla Çalışma.
MapiContact contact = MapiContact.FromVCard(dataDir + "Contact.vcf");
Ö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
vCard dosyasının kodlaması, PreferredEncoding özellik VCardLoadOptions sınıfı. Aşağıdaki kod parçacığı, belirtilen kodlama ile VCard’tan kişileri nasıl yükleyeceğinizi gösterir.
var loadOptions = new VCardLoadOptions { PreferredEncoding = Encoding.UTF8 };
var contactReadFromFile = MapiContact.FromVCard(dataDir + @"Contact.vcf", loadOptions);
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.
Aşağıdaki kod örneği, bir kişiyi kaydederken genişletilmiş alanların nasıl devre dışı bırakılacağını gösterir:
var contact = MapiContact.FromVCard("contact.vcf");
var options = new VCardSaveOptions
{
UseExtensions = false
};
contact.Save("contact_out.vcf", options);
vCard Dosyalarıyla Doğrudan Çalışma
format bağımsız VCardContact sınıfı — tek veya birden çok kişiyi yükleme, metin kodlamasını seçme, belirli bir vCard sürümüyle kaydetme ve eşzamansız yükleme — ayrı bir makalede ele alınmıştır: vCard (VCF) Dosyalarıyla Çalışma.
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);
Ayrıca Bakınız
- vCard (VCF) Dosyalarıyla Çalışma — vCard dosyalarını doğrudan
VCardContactsınıf. - PST Dosyalarında Kişileri Yönetme — bir PST içinde kişileri depolar ve okur.