【发布时间】:2021-04-20 02:42:00
【问题描述】:
我尝试在 Outlook 中设置规则只是为了得知规则不区分大小写。
如果收到一封电子邮件并且主题包含“测试电子邮件”(例如这是一封测试电子邮件),我想要,然后检查正文。
如果正文包含单词 NO,大写字母(不是单词的一部分),则将电子邮件移至特定文件夹。
我发现以下脚本用于正文中包含 NO 的传入电子邮件。
如何首先检查标题中的“测试电子邮件”?
Private WithEvents InboxItems As Outlook.Items
Private m_Rules As Variant
Sub Application_Startup()
Dim i As Long
i = -1: ReDim m_Rules(1000)
i = i + 1: m_Rules(i) = Array("NO", "No Folder")
ReDim Preserve m_Rules(i)
Set InboxItems = Application.Session.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub InboxItems_ItemAdd(ByVal Item As Object)
Dim Folder As Outlook.MAPIFolder
Dim i As Long, Find As String
'Find = Item.Subject
Find = Item.Body
For i = 0 To UBound(m_Rules)
If InStr(1, Find, m_Rules(i)(0), vbBinaryCompare) Then
Set Folder = Application.Session.GetDefaultFolder(olFolderInbox)
Set Folder = Folder.Folders(m_Rules(i)(1))
Item.Move Folder
Exit For
End If
Next
End Sub
【问题讨论】:
-
你所指的title就是Subject。您似乎知道如何在 Body 中使用
InStr。我不知道为什么你也不能在 Subject 中使用它。 -
所以我尝试更改它以查找主题 - 想我会从那个开始 - 我认为它会检查所有电子邮件,因为它会进入收件箱,但它似乎没有做任何事情。我不确定如何将我的代码添加到此评论字段中,抱歉:(
-
您没有将代码添加到注释字段中。您edit您的帖子将其放入问题中。 :-)
标签: vba outlook rules case-sensitive