Gra*_*man 15 microsoft-outlook vba rules office365 email-filter
使用默认电子邮件规则无法实现某些事情,例如使用通配符搜索主题或邮件正文。你可以做多个单词,但如果你需要单词彼此相距一个字符,那就不一样了。如何编写自己的 Visual Basic for Applications 代码来过滤 Outlook 电子邮件?
Gra*_*man 14
对于使这个简单的过滤器发生所需的所有这些部件,我看起来高低不高。相比之下,Unix procmail 过滤器非常容易使用。所有 Microsoft Outlook 向导都会妨碍使用通配符的简单过滤器。尽管 Microsoft 默认提供的许多电子邮件过滤条件都很有用,但没有什么比运行代码的灵活性和自定义性更好的了。
Alt-F11 调出 VBA 代码编辑器。双击 ThisOutlookSession。编写您的代码。在我的情况下,它在主题行上使用正则表达式,而不是将其移动到 DefaultFolder 而是我自己在子文件夹中的 pst。
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 = "(.*Abc.20.*)"
If Reg1.Test(Item.Subject) Then
Set MailDest = ns.Folders("Personal Folders").Folders("one").Folders("a")
Item.Move MailDest
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
在规则下选择“管理规则和警报...”。新规则看起来像
Apply this rule after the message arrives run Project1.ThisOutlookSession.filter
Run Code Online (Sandbox Code Playgroud)
为此,对于第 1 步:选择条件:只需单击下一步。单击“确定”以确认它适用于所有消息。对于选择操作,选中“运行脚本”,然后单击以选择过滤器脚本并选择下一步或完成。对于选择例外,单击下一步或完成。给它起一个像 vba-filter 这样的好名字,然后选中“启用此规则”。单击完成。由于它适用于本地文件夹,因此当它要求确认此规则不适用于您在线或从其他设备查看的电子邮件时,请单击“确定”。单击“规则和警报”对话框中的“确定”。
| 归档时间: |
|
| 查看次数: |
14382 次 |
| 最近记录: |