2016-08-25 91 views
0

我想通過查看主題行來使用正則表達式來過濾傳入的郵件,如果它包含6個連續的數字,將其移動到特定的文件夾。將收到的郵件移動到規則的RegEx文件夾

我發現了一個我一直在嘗試修改的腳本。

我想將這些電子郵件放在名爲'AMEX'的文件夾中,這是主收件箱的subfolder

Sub filter(Item As Outlook.MailItem) 
    Dim ns As Outlook.NameSpace 
    Dim MailDest As Outlook.Folder 

    Set ns = Application.GetNamespace("MAPI") 
    Set Reg1 = CreateObject("VBScript.RegExp") 

    Reg1.Global = True 
    Reg1.Pattern = "([\d][\d][\d][\d][\d][\d])" 
    If Reg1.Test(Item.Subject) Then 
     Set MailDest = ns.Folders("Inbox").Folders("AMEX") 
     Item.Move MailDest 
    End If 
End Sub 
+0

正則表達式似乎罰款,你得到任何錯誤?或者它只是不移動電子郵件到所需的文件夾? –

+0

根本沒有任何錯誤發生,但是當我重新運行執行腳本的規則並且不在任何位置時,郵件只停留在收件箱中。 – Reidacus

+0

該規則是基於新的電子郵件進入?或現有的電子郵件?您是否嘗試發送電子郵件至該主題中的6位數字的帳戶? –

回答

3

你的問題是文件夾名稱 替換集MailDest = ns.Folders( 「收件箱」)。文件夾( 「AMEX」)

這一行

Set MailDest = ns.Folders("[email protected]").Folders("Inbox").Folders("AMEX") 

和不忘記輸入您的帳戶名稱

+3

你先生,我擁有一杯好冷啤酒。像魅力一樣工作,非常感謝你:) – Reidacus

1

您也可以像這樣設置。

Set MailDest = ns.GetDefaultFolder(olFolderInbox).Folders("AMEX") 

GetDefaultFolder Method

+1

好的和乾淨的解決方案:) –

相關問題