Share via


Erstellen einer Regel zum Zuweisen von Kategorien zu E-Mail-Elementen basierend auf mehreren Wörtern im Betreff

In diesem Beispiel wird gezeigt, wie eine Regel zum Zuweisen von Kategorien zu E-Mail-Elementen basierend auf mehreren Wörtern im Betreff eingerichtet wird.

Beispiel

Hinweis

Das folgende Codebeispiel ist ein Auszug aus Programming Applications für Microsoft Office Outlook 2007.

In Outlook können Elemente zur einfacheren Organisation und Anzeige kategorisiert werden. Das Outlook-Objektmodell stellt das Category-Objekt und die Categories-Auflistung zur Darstellung von Kategorien bereit. Weitere Informationen zum Category-Objekt und zur Categories-Auflistung für ein Outlook-Element finden Sie unter Auflisten und Hinzufügen von Kategorien.

Eine Regel, die von einem Rule-Objekt dargestellt wird, kann mehreren Bedingungen zugewiesen werden. Sie können ein Array abrufen oder festlegen, das auszuwertende Bedingungen oder auszuführende Aktionen darstellt. Beispielsweise wird von der Text -Eigenschaft des TextRuleCondition -Objekts ein Array von Zeichenfolgenelementen zurückgegeben oder festgelegt, das den von der Regelbedingung auszuwertenden Text darstellt. Sie müssen ein Array mit einer oder mehreren Zeichenfolgen für die Auswertung zuordnen. Um mehrere Textzeichenfolgen auszuwerten, die in einem Array zugewiesen sind, verwenden Sie die logische ODER-Operation.

Folgende Eigenschaften können Sie zum Abrufen oder Festlegen eines Arrays verwenden: Address, Categories, Categories, FormName und TextRuleCondition.Text. Weitere Informationen zu Regeln finden Sie unter Erstellen einer Regel zum Ablegen von E-Mail-Elementen von einem Vorgesetzten und Kennzeichnen dieser Elemente für die Nachverfolgung.

Im folgenden Beispiel verwendet CreateTextAndCategoryRule die CategoryExists-Methode, um die E-Mail-Elemente des Benutzers anhand des Namens "Office" oder "Outlook" in der Categories-Auflistung auf Kategorien zu durchsuchen. Wenn keine Kategorien gefunden werden, werden diese hinzugefügt. Anschließend wird in dem Beispiel ein Array von Zeichenfolgen erstellt, die “Office", “Outlook” und “2007” enthalten. Dieses Array stellt die Kriterien dar, die ausgewertet werden sollen. Danach wird von CreateTextAndCategoryRule eine Regel erstellt, die durch Untersuchen des Betreffs auf die Bedingungen in dem Array mithilfe der Text-Eigenschaft des TextRuleCondition-Objekts und der BodyOrSubject-Eigenschaft der RuleConditions-Auflistung Kategorien zuordnet. Ist die Bedingung erfüllt, werden dem Element mithilfe der AssignToCategory -Methode des RuleActions -Objekts die Kategorien Office und Outlook zugeordnet.

Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die using-Anweisung darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgende Codezeile zeigt, wie Sie den Import und die Zuweisung in C# vornehmen.

using Outlook = Microsoft.Office.Interop.Outlook;
private void CreateTextAndCategoryRule()
{
    if (!CategoryExists("Office"))
    {
        Application.Session.Categories.Add(
            "Office", Type.Missing, Type.Missing);
    }
    if (!CategoryExists("Outlook"))
    {
        Application.Session.Categories.Add(
            "Outlook", Type.Missing, Type.Missing);
    }
    Outlook.Rules rules =
        Application.Session.DefaultStore.GetRules();
    Outlook.Rule textRule =
        rules.Create("Demo Text and Category Rule",
        Outlook.OlRuleType.olRuleReceive);
    Object[] textCondition = 
        { "Office", "Outlook", "2007" };
    Object[] categoryAction = 
        { "Office", "Outlook" };
    textRule.Conditions.BodyOrSubject.Text =
        textCondition;
    textRule.Conditions.BodyOrSubject.Enabled = true;
    textRule.Actions.AssignToCategory.Categories =
        categoryAction;
    textRule.Actions.AssignToCategory.Enabled = true;
    rules.Save(true);
}

// Determines if categoryName exists in Categories collection
private bool CategoryExists(string categoryName)
{
    try
    {
        Outlook.Category category =
            Application.Session.Categories[categoryName];
        if (category != null)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    catch { return false; }
}

Siehe auch