Gestion des contacts Outlook
Cet article couvre les Outlook autonomes MapiContact éléments sauvegardés comme MSG ou vCard (VCF). Pour le format neutre VCardContact classe qui lit et écrit directement les fichiers vCard, voir Travailler avec les fichiers vCard (VCF). Pour stocker et lire les contacts à l’intérieur d’un PST, voir Gestion des contacts dans les fichiers PST.
Comme MapiMessage, Aspose.Email vous permet de créer des contacts Outlook. Le MapiContact la classe fournit toutes les propriétés liées aux contacts nécessaires à la création d’un contact Outlook. Cet article montre comment créer, enregistrer et lire un contact Outlook en utilisant le MapiContact classe.
Créer et enregistrer un contact Outlook
Pour créer un contact et l’enregistrer sur le disque :
- Instanciez un nouvel objet du MapiContact classe.
- Saisir les informations des propriétés du contact.
- Ajouter les données de photo (le cas échéant).
- Enregistrez le contact au format MSG ou VCard.
Le code suivant montre comment créer et enregistrer un contact 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);
Enregistrer les listes de distribution MAPI en fichiers VCF
L’exemple de code ci-dessous montre comment enregistrer une liste de distribution dans un fichier VCF multi‑contacts :
// 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);
Convertir des fichiers VCF multi‑contacts en MapiDistributionList
Aspose.Email prend en charge la conversion de fichiers VCF multi‑contacts en MapiDistributionList objets, facilitant la gestion et l’importation de plusieurs contacts directement dans vos applications. Cette fonctionnalité est accessible via les méthodes statiques suivantes dans le MapiDistributionList classe:
- static MapiDistributionList FromVCF(string filePath)
- static MapiDistributionList FromVCF(Stream stream)
L’exemple de code ci-dessous montre comment utiliser cette fonctionnalité :
// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);
Enregistrer les contacts au format VCF
Pour enregistrer le contact au format VCF version 3, utilisez le VCardVersion énumération pour définir le VCardSaveOptions.Version propriété. Le code d’exemple suivant montre l’utilisation de VCardVersion énumération pour enregistrer le contact au format VCF version 3 :
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
options.Version = VCardVersion.V30;
dlist.Save("distribution_list.vcf", options);
Lecture des contacts MAPI
Le MapiContact la classe peut être utilisée pour charger des contacts aux formats Outlook MSG et VCard. Le fragment de code suivant vous montre comment charger des contacts Outlook enregistrés au format MSG et VCF dans un MapiContact.
Charger des contacts depuis des fichiers MSG
Le fragment de code suivant vous montre comment charger des contacts depuis MSG.
MapiMessage msg = MapiMessage.FromFile(dataDir + "Contact.msg");
MapiContact contact = (MapiContact)msg.ToMapiMessageItem();
Console.WriteLine(contact.NameInfo.DisplayName);
Charger des contacts depuis des VCards
Le fragment de code suivant montre comment charger un fichier vCard dans un MapiContact en utilisant le FromVCard méthode. Pour charger un vCard dans un VCardContact à la place, voir Travailler avec les fichiers vCard (VCF).
MapiContact contact = MapiContact.FromVCard(dataDir + "Contact.vcf");
Charger des contacts MAPI depuis vCard avec des options personnalisées
Pour offrir plus de flexibilité lors de la conversion de fichiers vCard (.vcf) en contacts MAPI, Aspose.Email pour .NET propose une surcharge MapiContact.FromVCard(string filePath, VCardLoadOptions options) méthode qui accepte un VCardLoadOptions objet. Il offre un meilleur contrôle sur la façon dont les fichiers vCard sont interprétés - notamment lors du travail avec différents formats vCard, encodages ou scénarios de parsing avancés.
L’exemple de code suivant montre comment charger un fichier de contact .vcf dans un MapiContact objet en utilisant la surcharge qui accepte VCardLoadOptions. Le contact chargé peut ensuite être utilisé dans des fichiers PST, l’export MSG, ou d’autres formats compatibles Outlook.
var mapiContact = MapiContact.FromVCard("contact.vcf", new VCardLoadOptions());
Console.WriteLine(mapiContact.NameInfo.DisplayName);
Charger des contacts depuis des VCards avec un encodage spécifié
Le codage d’un fichier vCard est spécifié via le PreferredEncoding propriété du VCardLoadOptions classe. Le fragment de code suivant montre comment charger des contacts depuis VCard avec le codage spécifié.
var loadOptions = new VCardLoadOptions { PreferredEncoding = Encoding.UTF8 };
var contactReadFromFile = MapiContact.FromVCard(dataDir + @"Contact.vcf", loadOptions);
Enregistrer les fichiers VCard avec des champs étendus
Le UseExtensions la propriété permet de contrôler si les champs étendus peuvent être utilisés lors de l’enregistrement de fichiers vCard. Lorsqu’elle est définie sur true (par défaut), les extensions sont autorisées, offrant une compatibilité avec les champs personnalisés et les informations de contact supplémentaires.
Le fragment de code suivant montre comment désactiver les champs étendus lors de l’enregistrement d’un contact :
var contact = MapiContact.FromVCard("contact.vcf");
var options = new VCardSaveOptions
{
UseExtensions = false
};
contact.Save("contact_out.vcf", options);
Travailler directement avec les fichiers vCard
Lecture et écriture de fichiers vCard (VCF) avec le format neutre VCardContact classe — chargement d’un ou plusieurs contacts, choix du codage texte, sauvegarde avec une version vCard spécifique, et chargement asynchrone — sont couverts dans un article dédié : Travailler avec les fichiers vCard (VCF).
Rendre les informations de contact en MHTML
Un contact Outlook peut être converti en MHTML à l’aide de l’API Aspose.Email. Cet exemple montre comment un VCard est chargé dans MapiContact et ensuite converti en MHTML à l’aide de 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);
Voir aussi
- Travailler avec les fichiers vCard (VCF) — lire et écrire les fichiers vCard directement avec le
VCardContactclasse. - Gestion des contacts dans les fichiers PST — stocker et lire des contacts dans un PST.