Gestion des contacts Outlook
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.
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 `MapiMessage` 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 enumerable 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.
Charger des contacts depuis des VCards
Le fragment de code suivant vous montre comment charger des contacts depuis un VCard.
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 fragment de code suivant vous montre comment charger des contacts depuis un VCard avec l’encodage spécifié.
Enregistrer les éléments de contact VCard avec un encodage spécifié
Personnalisez le comportement d’enregistrement lors du travail avec des fichiers VCard en utilisant le VCardSaveOptions classe. Le PreferredTextEncoding la propriété de la classe spécifiera l’encodage à utiliser lors de l’enregistrement des éléments de contact VCard.
L’exemple de code suivant montre comment implémenter cette propriété dans votre projet :
var cont = VCardContact.Load(fileName, Encoding.UTF8);
var opt = new VCardSaveOptions();
opt.PreferredTextEncoding = Encoding.UTF8;
cont.Save("my.vcard", opt);
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.
Lire plusieurs contacts au format VCard
Notre bibliothèque permet d’obtenir la liste de tous les contacts d’un VCard. Cela peut être réalisé en utilisant les méthodes et étapes suivantes :
// 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)
Le fragment de code suivant montre comment gérer des fichiers VCard contenant plusieurs contacts :
using (FileStream stream = new FileStream("test.vcf", FileMode.Open, FileAccess.Read))
{
if(VCardContact.IsMultiContacts(stream))
{
List<VCardContact> contacts = VCardContact.LoadAsMultiple(stream, Encoding.UTF8);
}
}
Charger les contacts vCard de façon asynchrone
Le VCardContact La classe dans Aspose.Email pour .NET prend en charge le chargement asynchrone de fichiers vCard. Cela permet aux applications de lire efficacement un ou plusieurs contacts à partir de fichiers ou flux .vcf sans bloquer le thread principal - idéal pour les applications de bureau, web ou mobiles modernes traitant de grandes listes de contacts. Les méthodes suivantes de cette classe peuvent accomplir cette tâche :
-
LoadAsync -
LoadAsMultipleAsync
L’exemple de code suivant montre comment charger de façon asynchrone plusieurs contacts vCard à partir d’un fichier .vcf en utilisant VCardContact.LoadAsMultipleAsync. Les contacts chargés sont traités dans une boucle, affichant le nom d’affichage de chaque contact dans la console. L’approche asynchrone garantit que l’application reste réactive, même lors de la lecture de gros fichiers.
var contacts = await VCardContact.LoadAsMultipleAsync("contacts.vcf", new VCardLoadOptions(), CancellationToken.None);
foreach (var contact in contacts)
{
Console.WriteLine(contact.IdentificationInfo.DisplayName);
}
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);