Zusammenfassung
In diesem Artikel wird beschrieben, wie Sie mithilfe der Microsoft Outlook 10.0-Objektbibliothek bestimmte Nachrichten mithilfe der Find-Methode und der Restrict-Methode in Microsoft Visual C#.
Weitere Informationen
Um die Microsoft Outlook 10.0-Objektbibliothek zum Abrufen bestimmter Nachrichten zu verwenden, führen Sie die folgenden Schritte aus:
-
Starten Microsoft Visual Studio .NET oder Microsoft Visual Studio 2005.
-
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Project.
-
Klicken Sie in C# Visual C#-Projekttypen auf Konsolenanwendung.
Standardmäßig wird die Datei "Class1.cs" erstellt.
Hinweis Klicken Sie in Microsoft Visual C# 2005 in der Liste Visual C#-Projekttypen auf Visuelle C# ". Standardmäßig wird "Program.cs" erstellt. -
Fügen Sie einen Verweis auf die Microsoft Outlook 10.0-Objektbibliothek hinzu. Gehen Sie hierzu folgendermaßen vor:
-
Klicken Sie im Menü Projekt auf Verweis hinzufügen.
-
Klicken Sie auf die Registerkarte COM, suchen Sie nach Microsoft Outlook 10.0-Objektbibliothek, und klicken Sie dann auf Auswählen.
Hinweis In Microsoft Visual C# 2005. Sie müssen nicht auf Auswählen klicken. -
Klicken Sie im Dialogfeld Verweise hinzufügen auf OK.
-
Wenn Sie aufgefordert werden, Wrapper für die ausgewählten Bibliotheken zu generieren, klicken Sie auf Ja.
-
-
Ersetzen Sie im Codefenster den Code durch Folgendes:
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;
}
}
} -
Suchen Sie im Code nach der Textzeichenfolge TODO, und ändern Sie dann den Code für Ihre Umgebung.
-
Drücken Sie F5, um das Programm zu erstellen und ausführen.
Informationsquellen
Weitere Informationen zu den Sicherheitsfeatures von Outlook 2002 erhalten Sie, indem Sie auf die folgende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzeigen:
290500 Beschreibung der entwicklerbezogenen E-Mail-Sicherheitsfeatures in Outlook 2002
Weitere Informationen zu Problemen, die auftreten können, wenn Sie die Count-Eigenschaft großer Sammlungen verwenden, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzeigen:
294385 OL2002: Eigenschaft 'Falsche Anzahl' bei Verwendung von Terminserien