我正在使用 Outlook 2010 的 VBA 宏来过滤传入的电子邮件并将其分类到不同的文件夹中。该规则在目标中提到
在实现和测试时,它确实提示错误消息框,而不是成功过滤。请告诉我默认呼叫下的哪个部分Application_NewMail
应继续吗?
Target :
提取[这个括号]内的单词
主题 :[ABC]
--> 创建收件箱文件夹ABC
主题 :[CMX]
--> 创建收件箱文件夹ABC
主题 :CMX
--> 创建收件箱文件夹CMX
主题 :INC000000156156
--> 创建收件箱文件夹INC
和子文件夹INC000000156156
编程语言:VBA宏
展望版本:2010
这是我的代码,我不知道如何创建空文件夹并将电子邮件分配给该文件夹:
Private Sub Application_NewMail()
Dim olFld As Outlook.MAPIFolder
Set olFld = Outlook.Session.GetDefaultFolder(olFolderInbox)
olFld.Items.Sort "[ReceivedTime]", False
Dim olMail As Outlook.MailItem
Set olMail = olFld.Items.GetFirst
MyNiftyFilter olMail
End Sub
Private Sub MyNiftyFilter(Item As Outlook.MailItem)
Debug.Print Item
Debug.Print Item.Subject
Dim Matches As Variant
Dim RegExp As New VBScript_RegExp_55.RegExp
Dim Pattern As String
Dim Email_Subject As String
Pattern = "(([\w-\s]*)\s*)"
Email_Subject = Item.Subject
With RegExp
.Global = False
.Pattern = Pattern
.IgnoreCase = True
Set Matches = .Execute(Email_Subject)
End With
If Matches.Count > 0 Then
End If
Set RegExp = Nothing
Set Matches = Nothing
Set Item = Nothing
End Sub
你要么使用ItemAdd event
https://stackoverflow.com/a/58428753/4539709 https://stackoverflow.com/a/58428753/4539709或修复你的NewMail
简单地
Private Sub Application_NewMail()
Dim Item As Outlook.MailItem
MyNiftyFilter Item
End Sub
NewMail 事件在新邮件到达收件箱时且在客户端规则处理发生之前触发。如果要处理到达收件箱的项目,请考虑对收件箱中的项目集合使用 ItemAdd 事件。 ItemAdd 事件传递对添加到文件夹中的每个项目的引用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)