Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

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.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. 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.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×