Správa kontaktů Outlook

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:

  1. Vytvořte novou instanci objektu MapiContact třída.
  2. Zadejte informace o vlastnostech kontaktu.
  3. Přidejte data fotografie (pokud existují).
  4. Uložte kontakt ve formátu MSG nebo VCard.

Následující úryvek kódu ukazuje, jak vytvořit a uložit Outlook kontakt.

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 `MapiMessage` 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:

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ý typ pro nastavení VCardSaveOptions.Version vlastnost. Následující ukázkový kód demonstruje použití VCardVersion enumerable 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.

Načíst kontakty z VCard

Níže uvedený úryvek kódu ukazuje, jak načíst kontakty z VCard.

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

Níže uvedený úryvek kódu vám ukazuje, jak načíst kontakty z VCard se zadaným kódováním.

Uložit VCard položky kontaktů se specifikovaným kódováním

Přizpůsobte chování ukládání při práci s VCard soubory pomocí VCardSaveOptions třída. The PreferredTextEncoding vlastnost třídy určuje kódování, které bude použito při ukládání VCard položek kontaktů.

Následující ukázkový kód ukazuje, jak implementovat tuto vlastnost ve vašem projektu:

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

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.

Číst více kontaktů ve formátu VCard

Naše knihovna umožňuje získat seznam všech kontaktů z VCard. Lze to provést pomocí následujících metod a kroků:

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

Níže uvedený úryvek kódu demonstruje, jak zpracovat VCard soubory obsahující více kontaktů:

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

Načíst vCard kontakty asynchronně

The VCardContact třída v Aspose.Email pro .NET podporuje asynchronní načítání vCard souborů. To umožňuje aplikacím efektivně číst jediné nebo více kontaktů ze souborů .vcf nebo streamů bez blokování hlavního vlákna – ideální pro moderní desktopové, webové nebo mobilní aplikace pracující s velkými seznamy kontaktů. Následující metody této třídy mohou úkol vykonat:

  • LoadAsync

  • LoadAsMultipleAsync

Níže uvedený ukázkový kód demonstruje, jak asynchronně načíst více vCard kontaktů z .vcf souboru pomocí VCardContact.LoadAsMultipleAsync. Načtené kontakty jsou zpracovány ve smyčce, přičemž každému kontaktu se vypíše zobrazované jméno do konzole. Asynchronní přístup zajišťuje, že aplikace zůstává responzivní i při čtení velkých souborů.

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

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

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