我目前已将 Outlook 与 Gmail 配合使用。我定义了几条规则,这些规则在我的帐户中的不同文件夹(标签)上运行。我已经在 GMail 中设置了过滤器,这些过滤器会使电子邮件跳过收件箱并将它们放入相应的文件夹中。
每当我收到新邮件时,这些文件夹中的规则都不会运行(它们只是用于设置类别)。我必须手动运行它们。我认为这是因为电子邮件不会先进入收件箱,而是直接进入文件夹。有没有办法让 Outlook 自动在这些文件夹中运行规则?计划运行也应该没问题。
答案1
就在这里。请注意,这是特定于垃圾文件夹的(olFolderJunk 是 Outlook 常量),它将运行我创建的任何以“JUNK_FILTER_”为前缀的过滤器。
它过于乐观,几乎没有错误检查,因此使用它需要您自担风险。如果您不理解它,请不要使用它 :)
Sub runRulesOnJunkFolder()
Dim st As Outlook.Store
Dim myRules As Outlook.Rules
Dim rl As Outlook.Rule
Dim count As Integer
Dim ruleList As String
Dim rulePrefix As String
Dim ruleFolder As Long
'
Dim outlookApp As Outlook.Application
Dim objNS As NameSpace
ruleFolder = olFolderJunk
rulePrefix = "JUNK_FILTER_"
Set objNS = Application.GetNamespace("MAPI")
Set objJunkfolder = objNS.GetDefaultFolder(ruleFolder)
' get default store (where rules live)
Set st = Application.Session.DefaultStore
' get rules
Set myRules = st.GetRules
' iterate all the rules
For Each rl In myRules
' determine if it's an Inbox rule and rule name prefix matches
If rl.RuleType = olRuleReceive And Left(rl.Name, Len(rulePrefix)) = rulePrefix Then
' if so, run it
rl.Execute ShowProgress:=True, Folder:=objJunkfolder
count = count + 1
ruleList = ruleList & vbCrLf & rl.Name
End If
Next
' tell the user what you did
ruleList = "These rules were executed against the folder: " & objJunkfolder.Name & vbCrLf & ruleList
MsgBox ruleList, vbInformation, "Macro: runRulesOnJunkFolder"
Set rl = Nothing
Set st = Nothing
Set myRules = Nothing
Set objJunkfolder = Nothing
Set objNS = Nothing
End Sub
答案2
类别在 IMAP 帐户上无法正常工作。分配给 IMAP 帐户中 Outlook 对象的任何类别都不会与服务器同步,因此只会显示在特定 Windows 安装上特定用户帐户的特定 Outlook 配置文件中。您真正可以在 IMAP 和 Outlook 中使用的只有标准开/关标志(而不是 GMail 或 Exchange 支持的不同类型)。
类别旨在与 Exchange 帐户一起使用,可以使用客户端规则分配类别,然后与服务器同步。它们也适用于 POP3 帐户,可以分配类别并按客户端规则对电子邮件进行排序。
作为类别能被分配(使用客户端规则)到已经分类到 Exchange 服务器上的文件夹(使用服务器端规则)的电子邮件上,我认为您的规则不起作用,因为类别实际上并不打算在非 Exchange 帐户上使用。
在我看来,由于 IMAP 邮箱的设置方式不寻常,所以我认为 GMail 无法与任何桌面电子邮件客户端一起令人满意地使用。
答案3
一种方法是设置一个定期约会,当提醒弹出时,它可以触发一个宏。宏将运行过滤器。如果你的日历中有很多约会,这似乎有点麻烦,而且不太可能在你想要的时候触发。我个人没有这样做过,但我相信这是可能的。
我有完成的是创建一个宏,该宏在特定文件夹上运行任何以特定前缀命名的过滤器。宏选择文件夹,过滤器决定操作(在我的情况下是“删除”)。了解 VBA 的人可以适应它。
创建宏后,我在 Outlook 工具栏上添加了一个运行该宏的按钮。每当我想的时候,我就会点击这个按钮。
如果您觉得可以修改它以满足您的需要,我可以发布源代码。
答案4
您可以直接在 GMail 中设置这些规则:关联。