Gestione contatti Outlook
Come MapiMessage, Aspose.Email permette di creare contatti Outlook. Il MapiContact La classe fornisce tutte le proprietà relative ai contatti necessarie per creare un contatto Outlook. Questo articolo mostra come creare, salvare e leggere un contatto Outlook usando il MapiContact classe.
Crea e salva un contatto Outlook
Per creare un contatto e salvarlo su disco:
- Istanzia un nuovo oggetto della MapiContact classe.
- Inserisci le informazioni delle proprietà del contatto.
- Aggiungi dati foto (se presenti).
- Salva il contatto in formato MSG o VCard.
Il frammento di codice seguente mostra come creare e salvare un contatto Outlook.
Salva liste di distribuzione MAPI in file VCF
Il seguente esempio di codice dimostra come salvare una lista di distribuzione in un file VCF multi-contatto:
// 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);
Converti file VCF multi-contatto in MapiDistributionList
Aspose.Email supporta la conversione di file VCF multipli in MapiDistributionList oggetti, rendendo facile gestire e importare più contatti direttamente nelle tue applicazioni. Questa funzionalità è accessibile tramite i seguenti metodi statici nella MapiDistributionList classe:
- static MapiDistributionList FromVCF(string filePath)
- static MapiDistributionList FromVCF(Stream stream)
L’esempio di codice seguente dimostra come usare questa funzionalità:
// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);
Salva contatti in formato VCF
Per salvare il contatto in formato VCF versione 3, usa il VCardVersion enumerable per impostare il VCardSaveOptions.Version proprietà. Il seguente codice di esempio dimostra l’uso di VCardVersion enumerabile per salvare il contatto nel formato VCF versione 3:
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
options.Version = VCardVersion.V30;
dlist.Save("distribution_list.vcf", options);
Lettura contatti MAPI
Il MapiContact La classe può essere usata per caricare contatti sia in formato Outlook MSG che VCard. Il seguente snippet di codice mostra come caricare contatti Outlook salvati come MSG e VCF in un MapiContact.
Carica contatti da file MSG
Il seguente snippet di codice mostra come caricare contatti da MSG.
Carica contatti da VCard
Il seguente snippet di codice mostra come caricare contatti da VCard.
Carica contatti MAPI da vCard con opzioni personalizzate
Per fornire maggiore flessibilità nella conversione di file vCard (.vcf) in contatti MAPI, Aspose.Email per .NET fornisce una sovraccarico MapiContact.FromVCard(string filePath, VCardLoadOptions options) metodo che accetta un VCardLoadOptions oggetto. Offre un controllo migliorato su come i file vCard vengono interpretati - soprattutto quando si lavora con formati vCard diversi, codifiche o scenari di parsing avanzati.
Il seguente esempio di codice dimostra come caricare un file contatto .vcf in un MapiContact oggetto usando la sovraccarico che accetta VCardLoadOptions. Il contatto caricato può poi essere usato all’interno di file PST, esportazione MSG o altri formati compatibili con Outlook.
var mapiContact = MapiContact.FromVCard("contact.vcf", new VCardLoadOptions());
Console.WriteLine(mapiContact.NameInfo.DisplayName);
Carica contatti da VCard con codifica specificata
Il seguente snippet di codice mostra come caricare contatti da VCard con la codifica specificata.
Salva elementi di contatto VCard con codifica specificata
Personalizza il comportamento di salvataggio quando lavori con file VCard usando il VCardSaveOptions classe. Il PreferredTextEncoding la proprietà della classe specificherà la codifica da usare quando si salvano gli elementi di contatto VCard.
Il seguente esempio di codice mostra come implementare questa proprietà nel tuo progetto:
var cont = VCardContact.Load(fileName, Encoding.UTF8);
var opt = new VCardSaveOptions();
opt.PreferredTextEncoding = Encoding.UTF8;
cont.Save("my.vcard", opt);
Salva file VCard con campi estesi
Il UseExtensions la proprietà consente di controllare se i campi estesi possono essere usati durante il salvataggio di file VCard. Quando impostata su true (default), le estensioni sono permesse, fornendo compatibilità con campi personalizzati e informazioni aggiuntive di contatto.
Leggi più contatti in formato VCard
La nostra libreria rende possibile ottenere l’elenco di tutti i contatti da una VCard. Può essere fatto usando i seguenti metodi e passaggi:
// 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)
Il seguente snippet di codice dimostra come gestire file VCard che contengono più contatti:
using (FileStream stream = new FileStream("test.vcf", FileMode.Open, FileAccess.Read))
{
if(VCardContact.IsMultiContacts(stream))
{
List<VCardContact> contacts = VCardContact.LoadAsMultiple(stream, Encoding.UTF8);
}
}
Carica contatti vCard in modo asincrono
Il VCardContact La classe in Aspose.Email per .NET supporta il caricamento asincrono di file vCard. Questo permette alle applicazioni di leggere in modo efficiente singoli o più contatti da file .vcf o stream senza bloccare il thread principale - ideale per applicazioni desktop, web o mobile moderne che gestiscono grandi elenchi di contatti. I seguenti metodi di questa classe possono svolgere il compito:
-
LoadAsync -
LoadAsMultipleAsync
Il seguente esempio di codice dimostra come caricare in modo asincrono più contatti vCard da un file .vcf usando VCardContact.LoadAsMultipleAsync. I contatti caricati vengono elaborati in un ciclo, stampando il nome visualizzato di ciascun contatto nella console. L’approccio asincrono garantisce che l’applicazione rimanga reattiva, anche durante la lettura di file di grandi dimensioni.
var contacts = await VCardContact.LoadAsMultipleAsync("contacts.vcf", new VCardLoadOptions(), CancellationToken.None);
foreach (var contact in contacts)
{
Console.WriteLine(contact.IdentificationInfo.DisplayName);
}
Rendi informazioni del contatto in MHTML
Il contatto Outlook può essere convertito in MHTML usando l’API di Aspose.Email. Questo esempio mostra come un VCard viene caricato in MapiContact e poi convertito in MHTML con l’aiuto di 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);