建立規則以將特定電子郵件移至資料夾
本主題說明 Visual Basic for Applications (VBA) 中的程式碼範例,該範例會使用 Rules 物件模型來建立規則。 程式碼範例會使用 RuleAction 與 RuleCondition 物件來將規則指定為:除非訊息包含主旨中的特定詞彙,否則就將訊息從特定寄件者移至特定的資料夾。 請注意,此程式碼範例假設,在在收件匣下已經有一個名為「Dan」資料夾。
下面會說明用來建立此規則的步驟:
指定目的檔案夾
oMoveTarget
,以根據條件和例外狀況條件來移動特定訊息。 此目標資料夾是 [收件匣] 底下名為 "Dan" 的子資料夾,而且會假設此資料夾已經存在。使用 Store.GetRules 來取得目前工作階段中所有規則的集合。
搭配上一個步驟傳回的 Rules 集合,使用 Rules.Create 來加入新的規則。 此新規則會指定收到郵件時執行的某些動作,所以它的類型為 olRuleReceive。
搭配上一個步驟傳回的 Rule 物件,使用 RuleConditions.From 屬性來取得 ToOrFromRuleCondition 物件 (
oFromCondition
)。oFromCondition
會為此規則指定條件:當郵件來自Dan Wilson
時。搭配相同的 Rule 物件,使用 RuleActions.MoveToFolder 屬性來取得 MoveOrCopyRuleAction 物件
oMoveRuleAction
。oMoveRuleAction
會為此規則指定動作:將郵件移至目標資料夾 "Dan"。搭配相同的 Rule 物件,使用 RuleConditions.Subject 屬性來取得 TextRuleCondition 物件 (
oExceptSubject
)。oExceptSubject
指定例外狀況條件:如果主旨包含「有趣」或「聊天」一詞,則請勿套用規則將訊息移至資料夾 「Dan」。使用 Rules.Save 同時儲存新的規則以及目前儲存區的其餘規則。
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
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。