Správa kontaktů Outlook
Tento článek pokrývá samostatné Outlook MapiContact položky uloženy jako MSG nebo vCard (VCF). Pro formátově neutrální VCardContact třída, která přímo čte a zapisuje vCard soubory, viz Práce se soubory vCard (VCF). Pro ukládání a čtení kontaktů uvnitř PST, viz Správa kontaktů v souborech PST.
Stejně jako MapiMessage, Aspose.Email umožňuje vytvářet kontakty Outlook. MapiContact třída poskytuje všechny vlastnosti související s kontakty potřebné k vytvoření kontaktu Outlook. Tento článek ukazuje, jak vytvořit, uložit a přečíst kontakt Outlook pomocí MapiContact třída.
Vytvořit a uložit Outlook kontakt
Pro vytvoření kontaktu a jeho uložení na disk:
- Vytvořte novou instanci objektu MapiContact třída.
- Zadejte informace o vlastnostech kontaktu.
- Přidejte data fotografie (pokud existují).
- Uložte kontakt ve formátu MSG nebo VCard.
Následující úryvek kódu ukazuje, jak vytvořit a uložit Outlook kontakt.
// 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);
Uložit MAPI distribuční seznamy do VCF souborů
Níže uvedený ukázkový kód demonstruje, jak uložit distribuční seznam do VCF souboru s více kontakty:
// 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);
Převést VCF soubory s více kontakty na MapiDistributionList
Aspose.Email podporuje konverzi VCF souborů s více kontakty do MapiDistributionList objekty, což usnadňuje správu a import více kontaktů přímo do vašich aplikací. Tato funkce je přístupná prostřednictvím následujících statických metod v MapiDistributionList třída:
- static MapiDistributionList FromVCF(string filePath)
- static MapiDistributionList FromVCF(Stream stream)
Níže uvedený ukázkový kód demonstruje, jak tuto funkci použít:
// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);
Uložení kontaktů ve formátu VCF
Pro uložení kontaktu ve formátu VCF verze 3 použijte VCardVersion výčtového typu pro nastavení VCardSaveOptions.Version vlastnost. Následující ukázkový kód demonstruje použití VCardVersion výčtového typu pro uložení kontaktu ve formátu VCF verze 3:
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
options.Version = VCardVersion.V30;
dlist.Save("distribution_list.vcf", options);
Čtení MAPI kontaktů
The MapiContact třída může být použita k načtení kontaktů ve formátu Outlook MSG i VCard. Níže uvedený úryvek kódu ukazuje, jak načíst Outlook kontakty uložené jako MSG a VCF do MapiContact.
Načíst kontakty z MSG souborů
Níže uvedený úryvek kódu ukazuje, jak načíst kontakty z MSG.
MapiMessage msg = MapiMessage.FromFile(dataDir + "Contact.msg");
MapiContact contact = (MapiContact)msg.ToMapiMessageItem();
Console.WriteLine(contact.NameInfo.DisplayName);
Načíst kontakty z VCard
Následující úryvek kódu ukazuje, jak načíst soubor vCard do MapiContact pomocí FromVCard metoda. Pro načtení vCard do VCardContact namísto toho, viz Práce se soubory vCard (VCF).
MapiContact contact = MapiContact.FromVCard(dataDir + "Contact.vcf");
Načíst MAPI kontakty z vCard s vlastními možnostmi
Pro poskytnutí větší flexibility při konverzi vCard (.vcf) souborů na MAPI kontakty nabízí Aspose.Email pro .NET přetížení MapiContact.FromVCard(string filePath, VCardLoadOptions options) metoda, která přijímá VCardLoadOptions objektu. Poskytuje vylepšenou kontrolu nad tím, jak jsou soubory vCard interpretovány – zejména při práci s různými formáty vCard, kódováními nebo pokročilými scénáři parsování.
Níže uvedený ukázkový kód demonstruje, jak načíst soubor .vcf kontaktu do MapiContact objekt pomocí přetížení, které přijímá VCardLoadOptions. Načtený kontakt pak může být použit v PST souborech, exportu MSG nebo jiných formátech kompatibilních s Outlookem.
var mapiContact = MapiContact.FromVCard("contact.vcf", new VCardLoadOptions());
Console.WriteLine(mapiContact.NameInfo.DisplayName);
Načíst kontakty z VCard se specifikovaným kódováním
Kódování souboru vCard je určeno pomocí PreferredEncoding vlastnost třídy VCardLoadOptions třída. Následující úryvek kódu ukazuje, jak načíst kontakty z VCard se zadaným kódováním.
var loadOptions = new VCardLoadOptions { PreferredEncoding = Encoding.UTF8 };
var contactReadFromFile = MapiContact.FromVCard(dataDir + @"Contact.vcf", loadOptions);
Uložit VCard soubory s rozšířenými poli
The UseExtensions vlastnost umožňuje kontrolovat, zda mohou být při ukládání vCard souborů použita rozšířená pole. Když je nastavena na true (výchozí), jsou rozšíření povolena, což poskytuje kompatibilitu s vlastními poli a doplňujícími informacemi o kontaktu.
Následující ukázka kódu ukazuje, jak při ukládání kontaktu zakázat rozšířená pole:
var contact = MapiContact.FromVCard("contact.vcf");
var options = new VCardSaveOptions
{
UseExtensions = false
};
contact.Save("contact_out.vcf", options);
Práce s vCard soubory přímo
Čtení a zápis vCard (VCF) souborů pomocí formátově neutrálního VCardContact třída — načítání jednoho nebo více kontaktů, výběr textového kódování, ukládání s konkrétní verzí vCard a asynchronní načítání — je pokryto v samostatném článku: Práce se soubory vCard (VCF).
Vykreslit informace o kontaktu do MHTML
Outlook kontakt může být převeden do MHTML pomocí Aspose.Email API. Tento příklad ukazuje, jak je VCard načten do MapiContact a poté převedeno do MHTML pomocí 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);
Viz také
- Práce se soubory vCard (VCF) — číst a zapisovat vCard soubory přímo pomocí
VCardContacttřída. - Správa kontaktů v souborech PST — ukládat a číst kontakty v PST.