Résumé
Cet article explique comment utiliser la bibliothèque d’objets Microsoft Outlook 10.0 pour récupérer des messages spécifiques à l’aide des méthodes Rechercher et Restreindre dans Microsoft Visual C#.
Informations supplémentaires
Pour utiliser la bibliothèque d’objets Microsoft Outlook 10.0 pour récupérer des messages spécifiques, suivez ces étapes :
-
Démarrez Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
-
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Project.
-
Dans la liste Types de projets C# visuels , cliquez sur Application de console.
Par défaut, le fichier Class1.cs est créé. Remarque Dans Microsoft Visual C# 2005, cliquez sur Visual C# » dans la liste types de projets C# visuels . Par défaut, Program.cs est créé. -
Ajoutez une référence à la bibliothèque d’objets Microsoft Outlook 10.0. Pour ce faire, suivez ces étapes :
-
Dans le menu Projet, cliquez sur Ajouter une référence.
-
Cliquez sur l’onglet COM, recherchez Microsoft Outlook bibliothèque d’objets 10.0, puis cliquez sur Sélectionner.
Remarque dans Microsoft Visual C# 2005. vous n’avez pas besoin de cliquer sur Sélectionner. -
Dans la boîte de dialogue Ajouter des références , cliquez sur OK.
-
Si vous êtes invité à générer des wrappers pour les bibliothèques que vous avez sélectionnées, cliquez sur Oui.
-
-
Dans la fenêtre de code, remplacez le code par ce qui suit :
using System;
using System.Reflection; // to use Missing.Value namespace FilterAppointments { /// <summary> /// Summary description for Class1. /// </summary> class Class1 { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] public static int Main(string[] args) { try { // Create an Outlook application. Outlook.Application oApp = new Outlook.Application(); // Get the Mapi NameSpace and the Logon. Outlook.NameSpace oNS = (Outlook.NameSpace)oApp.GetNamespace("mapi"); // Log on using dialog to choose a profile. oNS.Logon(Missing.Value, Missing.Value, true, true); // Alternate Logon using specific profile // TODO: Change the profile name where it is appropriate. //oNS.Logon("YourValidProfile", Missing.Value, false, true); // Get the Calendar folder. Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar); // Get the Items collection in the folder. Outlook.Items oItems = (Outlook.Items)oCalendar.Items; Console.WriteLine("Total Items (unrestricted): " + oItems.Count); //Include all occurrences of recurring items, and then sort them. oItems.Sort ("[Start]", false); oItems.IncludeRecurrences = true; // Define the string for the search criteria. String sCriteria; // Set the criteria for the Date fields. sCriteria = "[Start] <= '09/01/2002 08:00 AM' and [End] >= '2/15/2002 08:00 PM'"; // Set the criteria for a string field. // sCriteria = "[Subject] = 'Weekly recurring meeting'"; // Set the criteria for a numeric field. // Look for meetings that have not been responded to. // sCriteria = "[ResponseStatus] = " + (Int32)Outlook.OlResponseStatus.olResponseNotResponded) // Use the Restrict method to reduce the number of items to process. Outlook.Items oRestrictedItems = oItems.Restrict(sCriteria); oRestrictedItems.Sort ("[Start]", false); oRestrictedItems.IncludeRecurrences = true; Console.WriteLine("Total Items Unrestricted : " + oRestrictedItems.Count); Outlook.AppointmentItem oAppointment; //Get each item until item is null. Outlook.AppointmentItem oAppt; oAppt = (Outlook.AppointmentItem)oRestrictedItems.GetFirst(); while (oAppt != null) { // Console.WriteLine(i.ToString()); Console.WriteLine(" Subject: " + oAppt.Subject.ToString()); Console.WriteLine(" Start time: " + oAppt.Start.ToString()); Console.WriteLine(" End time: " + oAppt.End.ToString()); Console.WriteLine(" Occurrences: " + oAppt.RecurrenceState.ToString()); Console.WriteLine("\n\n"); oAppt = (Outlook.AppointmentItem)oRestrictedItems.GetNext(); } // Use the Find method to get single match. sCriteria = "[Start] >= '09/30/2001'"; Console.WriteLine("Criteria: " + sCriteria.ToString()); oAppointment = (Outlook.AppointmentItem)oItems.Find(sCriteria); Console.WriteLine("Used Find with Date fields"); if (oAppointment is Outlook.AppointmentItem) Console.WriteLine("Found -> " + oAppointment.Subject.ToString()); else Console.WriteLine("No object found"); // Log off oNS.Logoff(); // Clean up oAppointment = null; oRestrictedItems = null; oItems = null; oCalendar = null; oNS = null; oApp = null; } //Simple error handling catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } //Default return value return 0; } } } -
Recherchez la chaîne de texte TODO dans le code, puis modifiez le code de votre environnement.
-
Appuyez sur la touche F5 pour créer et exécuter le programme.
Références
Pour plus d’informations sur les fonctionnalités de sécurité de Outlook 2002, cliquez sur le numéro d’article suivant pour le consulter dans la Base de connaissances Microsoft :
290500 Description des fonctionnalités de sécurité du courrier électronique liées aux développeurs dans Outlook 2002 Pour plus d’informations sur les problèmes qui peuvent se produire lorsque vous utilisez la propriété Nombre de grandes collections, cliquez sur le numéro d’article suivant pour le consulter dans la Base de connaissances Microsoft :
294385 OL2002 : propriété Nombre incorrect à l’aide de rendez-vous périodiques