Erstellen einer Regel zum Verschieben bestimmter E-Mails in einen Ordner
Dieses Thema zeigt ein Codebeispiel in Visual Basic for Applications (VBA), das das Rules-Objektmodell verwendet, um eine Regel zu erstellen. Das Codebeispiel verwendet die RuleAction- und RuleCondition-Objekte zum Angeben einer Regel, die Nachrichten eines bestimmten Absenders in einen bestimmten Ordner verschiebt, es sei denn, die Nachricht enthält bestimmte Begriffe im Betreff. Beachten Sie, dass das Codebeispiel davon ausgeht, dass es bereits einen Ordner namens „Dan“ unter dem Posteingang gibt.
Im Folgenden werden die zum Erstellen der Regel verwendeten Schritte beschrieben:
Geben Sie den Zielordner
oMoveTarget
an, um bestimmte Nachrichten gemäß der Bedingung und Ausnahmebedingung zu verschieben. The target folder is a subfolder named "Dan" under the Inbox, and is assumed to already exist.Verwenden Sie Store.GetRules , um einen Satz aller Regeln in der aktuellen Sitzung abzurufen.
Verwenden Sie die Rules-Auflistung , die im letzten Schritt zurückgegeben wurde, und verwenden Sie Rules.Create , um eine neue Regel hinzuzufügen. Die neue Regel legt einige Aktionen nach dem Eingang einer Nachricht fest, sodass sie vom Typ olRuleReceive ist.
Verwenden Sie das Rule-Objekt , das im letzten Schritt zurückgegeben wurde, und verwenden Sie die RuleConditions.From-Eigenschaft , um ein ToOrFromRuleCondition-Objekt abzurufen,
oFromCondition
.oFromCondition
gibt die Bedingung für die Regel an: Wenn eine Nachricht vonDan Wilson
stammt.Verwenden Sie das gleiche Rule-Objekt , und verwenden Sie die RuleActions.MoveToFolder-Eigenschaft , um ein MoveOrCopyRuleAction-Objekt abzurufen,
oMoveRuleAction
.oMoveRuleAction
specifies the action for the rule: move the message to the target folder "Dan".Verwenden Sie das gleiche Rule-Objekt, und verwenden Sie die RuleConditions.Subject-Eigenschaft, um ein TextRuleCondition-Objekt abzurufen.
oExceptSubject
oExceptSubject
gibt die Ausnahmebedingung an: Wenn der Betreff die Begriffe "Spaß" oder "Chat" enthält, wenden Sie die Regel nicht an, um die Nachricht in den Ordner "Dan" zu verschieben.Verwenden Sie Rules.Save , um die neue Regel zusammen mit den restlichen Regeln für den aktuellen Speicher zu speichern.
Sub CreateRule()
Dim colRules As Outlook.Rules
Dim oRule As Outlook.Rule
Dim colRuleActions As Outlook.RuleActions
Dim oMoveRuleAction As Outlook.MoveOrCopyRuleAction
Dim oFromCondition As Outlook.ToOrFromRuleCondition
Dim oExceptSubject As Outlook.TextRuleCondition
Dim oInbox As Outlook.Folder
Dim oMoveTarget As Outlook.Folder
'Specify target folder for rule move action
Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox)
'Assume that target folder already exists
Set oMoveTarget = oInbox.Folders("Dan")
'Get Rules from Session.DefaultStore object
Set colRules = Application.Session.DefaultStore.GetRules()
'Create the rule by adding a Receive Rule to Rules collection
Set oRule = colRules.Create("Dan's rule", olRuleReceive)
'Specify the condition in a ToOrFromRuleCondition object
'Condition is if the message is from "Dan Wilson"
Set oFromCondition = oRule.Conditions.From
With oFromCondition
.Enabled = True
.Recipients.Add ("Dan Wilson")
.Recipients.ResolveAll
End With
'Specify the action in a MoveOrCopyRuleAction object
'Action is to move the message to the target folder
Set oMoveRuleAction = oRule.Actions.MoveToFolder
With oMoveRuleAction
.Enabled = True
.Folder = oMoveTarget
End With
'Specify the exception condition for the subject in a TextRuleCondition object
'Exception condition is if the subject contains "fun" or "chat"
Set oExceptSubject = _
oRule.Exceptions.Subject
With oExceptSubject
.Enabled = True
.Text = Array("fun", "chat")
End With
'Update the server and display progress dialog
colRules.Save
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.