Outlook VBA - 移至文件夹 - 正文
Outlook VBA - Move to folder - Body text
我尝试创建一个脚本,用于从收到的电子邮件中搜索正文和发件人姓名,如果是,则将电子邮件移动到子文件夹。
我试图将此代码添加到 ThisOutlookSession,但它不起作用。
Public Sub MailtoFolder(Item As Outlook.MailItem)
Dim myNameSpace As Outlook.NameSpace
Dim myInbox As Outlook.MAPIFolder
Dim myDestFolder As Outlook.MAPIFolder
Set myNameSpace = Application.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myDestFolder = myInbox.Folders("xTest")
If InStr(Item.Body, "Test123") > 0 And Item.SenderName = "Jon" Then
Item.Move myDestFolder
End If
Set myDestFolder = Nothing
Set myInbox = Nothing
Set myNameSpace = Nothing
End Sub
有什么我做错的想法吗?
你的 "Item" 目前还没有设置。
如果您希望将此应用于当前打开的电子邮件,例如
Set Item=Application.ActiveExplorer.Selection.Item(1)
如果您希望遍历文件夹中的所有邮件,您需要这样做:
Set myDestFolder = myInbox.Folders("xTest")
For Each mailItem in myDestFolder.Items
' ... do your magic
Next mailItem
我尝试创建一个脚本,用于从收到的电子邮件中搜索正文和发件人姓名,如果是,则将电子邮件移动到子文件夹。
我试图将此代码添加到 ThisOutlookSession,但它不起作用。
Public Sub MailtoFolder(Item As Outlook.MailItem)
Dim myNameSpace As Outlook.NameSpace
Dim myInbox As Outlook.MAPIFolder
Dim myDestFolder As Outlook.MAPIFolder
Set myNameSpace = Application.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myDestFolder = myInbox.Folders("xTest")
If InStr(Item.Body, "Test123") > 0 And Item.SenderName = "Jon" Then
Item.Move myDestFolder
End If
Set myDestFolder = Nothing
Set myInbox = Nothing
Set myNameSpace = Nothing
End Sub
有什么我做错的想法吗?
你的 "Item" 目前还没有设置。 如果您希望将此应用于当前打开的电子邮件,例如
Set Item=Application.ActiveExplorer.Selection.Item(1)
如果您希望遍历文件夹中的所有邮件,您需要这样做:
Set myDestFolder = myInbox.Folders("xTest")
For Each mailItem in myDestFolder.Items
' ... do your magic
Next mailItem