Beheer van Outlook‑contactpersonen

Net als MapiMessage stelt Aspose.Email u in staat Outlook‑contacten te maken. De MapiContact klasse biedt alle contactgerelateerde eigenschappen die nodig zijn om een Outlook‑contact te creëren. Dit artikel laat zien hoe u een Outlook‑contact maakt, opslaat en leest met behulp van de MapiContact klasse.

Een Outlook‑contact maken en opslaan

Om een contact te maken en op schijf op te slaan:

  1. Instantieer een nieuw object van de MapiContact klasse.
  2. Voer contacteigenschapsinformatie in.
  3. Voeg fotogegevens toe (indien aanwezig).
  4. Sla het contact op in MSG- of VCard-formaat.

Het volgende codefragment laat zien hoe u een Outlook‑contact maakt en opslaat.

MAPI‑distributielijsten opslaan in VCF‑bestanden

Het onderstaande codevoorbeeld toont hoe u een distributielijst kunt opslaan in een VCF‑bestand met meerdere contactpersonen:

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

Meerdere‑contact VCF‑bestanden converteren naar MapiDistributionList

Aspose.Email ondersteunt de conversie van meerdere‑contact VCF‑bestanden naar MapiDistributionList objecten, waardoor het eenvoudig is om meerdere contactpersonen direct in uw applicaties te beheren en importeren. Deze functie is toegankelijk via de volgende statische methoden in de MapiDistributionList klasse:

Het onderstaande codevoorbeeld toont hoe u deze functie kunt gebruiken:

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

Contacten opslaan in VCF‑formaat

Om het contact op te slaan in VCF versie 3 formaat, gebruik de VCardVersion enumeratie om de VCardSaveOptions.Version eigenschap. De volgende voorbeeldcode demonstreert het gebruik van VCardVersion enumerable om het contact op te slaan in VCF versie 3‑formaat:

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

MAPI‑contacten lezen

De MapiContact klasse kan worden gebruikt om zowel Outlook MSG‑ als VCard‑formaatcontacten te laden. Het volgende codefragment laat zien hoe u Outlook‑contacten, opgeslagen als MSG en VCF, kunt laden in een MapiContact.

Contacten laden uit MSG‑bestanden

Het volgende codefragment laat zien hoe u contactpersonen uit een MSG kunt laden.

Contacten laden vanuit VCards

Het volgende codefragment laat zien hoe u contactpersonen uit een VCard kunt laden.

MAPI‑contacten laden uit vCard met aangepaste opties

Om meer flexibiliteit te bieden bij het converteren van vCard‑bestanden (.vcf) naar MAPI‑contacten, biedt Aspose.Email voor .NET een overload MapiContact.FromVCard(string filePath, VCardLoadOptions options) methode die een VCardLoadOptions object. Het biedt verbeterde controle over hoe vCard‑bestanden worden geïnterpreteerd – vooral bij het werken met verschillende vCard‑formaten, coderingen of geavanceerde parse‑scenario’s.

Het onderstaande codevoorbeeld toont hoe u een .vcf‑contactbestand kunt laden in een MapiContact object met de overload die accepteert VCardLoadOptions. Het geladen contact kan vervolgens worden gebruikt binnen PST‑bestanden, MSG‑export of andere Outlook‑compatibele formaten.

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

Contacten laden vanuit VCards met opgegeven codering

Het volgende codefragment laat zien hoe u contactpersonen uit een VCard kunt laden met de opgegeven codering.

VCard‑contactitems opslaan met opgegeven codering

Pas het opslaggedrag aan bij het werken met VCard‑bestanden met behulp van de VCardSaveOptions klasse. De PreferredTextEncoding eigenschap van de klasse zal de codering specificeren die gebruikt wordt bij het opslaan van VCard‑contactitems.

Het volgende codevoorbeeld toont hoe u deze eigenschap in uw project implementeert:

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

VCard‑bestanden opslaan met uitgebreide velden

De UseExtensions eigenschap stelt u in staat te bepalen of uitgebreide velden mogen worden gebruikt bij het opslaan van vCard‑bestanden. Wanneer ingesteld op true (standaard), zijn extensies toegestaan, waardoor compatibiliteit met aangepaste velden en extra contactinformatie wordt geboden.

Meerdere contacten lezen in VCard-formaat

Onze bibliotheek maakt het mogelijk om de lijst met alle contactpersonen uit een VCard op te halen. Dit kan worden gedaan met behulp van de volgende methoden en stappen:

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

Het onderstaande codefragment toont hoe u VCard‑bestanden verwerkt die meerdere contactpersonen bevatten:

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

vCard‑contacten asynchroon laden

De VCardContact klasse in Aspose.Email voor .NET ondersteunt het asynchroon laden van vCard‑bestanden. Dit stelt applicaties in staat om efficiënt enkele of meerdere contactpersonen uit .vcf‑bestanden of streams te lezen zonder de hoofdthread te blokkeren – ideaal voor moderne desktop‑, web‑ of mobiele applicaties die met grote contactlijsten werken. De volgende methoden van deze klasse kunnen de taak uitvoeren:

  • LoadAsync

  • LoadAsMultipleAsync

Het onderstaande codevoorbeeld toont hoe u asynchroon meerdere vCard‑contacten uit een .vcf‑bestand kunt laden met VCardContact.LoadAsMultipleAsync. De geladen contactpersonen worden in een lus verwerkt, waarbij elke contactnaam naar de console wordt geprint. De asynchrone aanpak zorgt ervoor dat de applicatie responsief blijft, zelfs bij het lezen van grote bestanden.

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

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

Contactinformatie renderen naar MHTML

Outlook-contact kan worden geconverteerd naar MHTML met de Aspose.Email API. Dit voorbeeld laat zien hoe een VCard wordt geladen in MapiContact en vervolgens geconverteerd naar MHTML met behulp van 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);