Riepilogo

Questo articolo descrive come usare la raccolta oggetti di Microsoft Outlook 10.0 per recuperare messaggi specifici usando il metodo Find e il metodo Restrict in Microsoft Visual C#.

Ulteriori informazioni

Per usare la raccolta oggetti di Microsoft Outlook 10.0 per recuperare messaggi specifici, seguire questa procedura:

  1. Avviare Microsoft Visual Studio .NET o Microsoft Visual Studio 2005.

  2. Scegliere Nuovo dal menu Filee quindi fare clic su Project.

  3. Nell'elenco Tipi C# progetti di Visual Studio fare clic su Applicazione console. Per impostazione predefinita, viene creato il file Class1.cs.Nota In Microsoft Visual C# 2005 fare clic su Visual C#" nell'elenco Tipi C# progetti visuali. Per impostazione predefinita, viene creato Program.cs.

  4. Aggiungere un riferimento alla raccolta oggetti di Microsoft Outlook 10.0. A questo scopo, seguire questa procedura:

    1. Scegliere Aggiungi riferimento dal menu Progetto.

    2. Fare clic sulla scheda COM, individuare Microsoft Outlook 10.0 Object Library e quindi fare clic su Seleziona. Nota In Microsoft Visual C# 2005. non è necessario fare clic su Seleziona.

    3. Nella finestra di dialogo Aggiungi riferimenti fare clic su OK.

    4. Se viene richiesto di generare wrapper per le raccolte selezionate, fare clic su .

  5. Nella finestra del codice sostituire il codice con quanto segue:

    using System;using System.Reflection;     // to use Missing.Valuenamespace 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;      }   }}
  6. Cercare la stringa di testo TODO nel codice e quindi modificare il codice per l'ambiente.

  7. Premere F5 per compilare ed eseguire il programma.

Riferimenti

Per altre informazioni sulle caratteristiche di sicurezza di Outlook 2002, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

290500 Descrizione delle caratteristiche di sicurezza della posta elettronica correlate agli sviluppatori in Outlook 2002Per altre informazioni sui problemi che possono verificarsi quando si usa la proprietà Count di raccolte di grandi dimensioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

294385 OL2002: Proprietà Count non corretta con appuntamenti ricorrenti

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.