Slik henter du bestemte meldinger ved hjelp av Finn-metoden og Begrens-metoden i Visual C#

Sammendrag

Denne artikkelen beskriver hvordan du bruker Microsoft Outlook 10.0-objektbiblioteket til å hente bestemte meldinger ved hjelp av Finn-metoden og Begrens-metoden i Microsoft Visual C#.

Mer informasjon

Følg disse trinnene for å bruke objektbiblioteket i Microsoft Outlook 10.0 til å hente bestemte meldinger:

  1. Start Microsoft Visual Studio .NET eller Microsoft Visual Studio 2005.

  2. Pek på NyFil-menyen, og klikk deretter Prosjekt.

  3. Klikk Konsollprogram i listen visuelle C#-prosjekter.

    Som standard opprettes den Class1.cs filen.

    Obs! I Microsoft Visual C# 2005 klikker du Visual C#" i listen Over visualobjekt C#-prosjekter . Som standard opprettes Program.cs.

  4. Legg til en referanse til objektbiblioteket i Microsoft Outlook 10.0. Slik gjør du dette:

    1. Klikk Legg til referanseProsjekt-menyen.

    2. Klikk COM-fanen , finn Microsoft Outlook 10.0-objektbiblioteket, og klikk deretter Velg.

      Obs! I Microsoft Visual C# 2005. du trenger ikke å klikke Velg.

    3. Klikk OK i dialogboksen Legg til referanser.

    4. Hvis du blir bedt om å generere wrappers for bibliotekene du valgte, klikker du Ja.

  5. Erstatt koden med følgende i kodevinduet:

    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;
          }
       }
    }
    
    
  6. Søk etter todo-tekststrengen i koden, og endre deretter koden for miljøet ditt.

  7. Trykk F5-tasten for å bygge og kjøre programmet.

Kilder

Hvis du vil ha mer informasjon om sikkerhetsfunksjonene i Outlook 2002, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

290500 Beskrivelse av utviklerrelaterte sikkerhetsfunksjoner for e-post i Outlook 2002

Hvis du vil ha mer informasjon om problemer som kan oppstå når du bruker Count-egenskapen for store samlinger, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:

294385 OL2002: Feil Antall-egenskapen ved hjelp av regelmessige avtaler