Gestione contatti Outlook
Questo articolo tratta Outlook autonomo MapiContact elementi salvati come MSG o vCard (VCF). Per il formato neutro VCardContact classe che legge e scrive file vCard direttamente, vedere Lavorare con file vCard (VCF). Per archiviare e leggere contatti all’interno di un PST, vedere Gestione dei contatti nei file PST.
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.
// 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);
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 `MapiDistributionList` 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 enumerazione per impostare il VCardSaveOptions.Version proprietà. Il seguente codice di esempio dimostra l’uso di VCardVersion enumerazione per salvare il contatto in 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.
MapiMessage msg = MapiMessage.FromFile(dataDir + "Contact.msg");
MapiContact contact = (MapiContact)msg.ToMapiMessageItem();
Console.WriteLine(contact.NameInfo.DisplayName);
Carica contatti da VCard
Il frammento di codice seguente mostra come caricare un file vCard in un MapiContact usando il FromVCard metodo. Per caricare una vCard in un VCardContact invece, vedere Lavorare con file vCard (VCF).
MapiContact contact = MapiContact.FromVCard(dataDir + "Contact.vcf");
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
La codifica di un file vCard è specificata tramite il PreferredEncoding proprietà del VCardLoadOptions classe. Il frammento di codice seguente mostra come caricare contatti da VCard con la codifica specificata.
var loadOptions = new VCardLoadOptions { PreferredEncoding = Encoding.UTF8 };
var contactReadFromFile = MapiContact.FromVCard(dataDir + @"Contact.vcf", loadOptions);
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.
Il seguente esempio di codice mostra come disabilitare i campi estesi durante il salvataggio di un contatto:
var contact = MapiContact.FromVCard("contact.vcf");
var options = new VCardSaveOptions
{
UseExtensions = false
};
contact.Save("contact_out.vcf", options);
Lavorare direttamente con file vCard
Lettura e scrittura di file vCard (VCF) con il formato neutro VCardContact classe — caricamento di contatti singoli o multipli, scelta della codifica del testo, salvataggio con una versione specifica di vCard e caricamento asincrono — è trattato in un articolo dedicato: Lavorare con file vCard (VCF).
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);
Vedi anche
- Lavorare con file vCard (VCF) — leggi e scrivi file vCard direttamente con il
VCardContactclasse. - Gestione dei contatti nei file PST — memorizza e legge i contatti all’interno di un PST.