VBA Outlook事件移动电子邮件
问题描述:
我搜索一种方式来获取移动项目/电子邮件在Outlook中的事件。VBA Outlook事件移动电子邮件
我们可以使用Inspector吗? 或者也许有像event或newmail这样的事件处理程序?
谢谢
更多详细信息:
我有4个或更多的邮箱。 每个文件夹和子文件夹都有一个数量为X的文件夹(其中1个是带有数百万个文件夹的活动链接文件夹)。 有些是常见的盒子,有些人拖动普通的邮件。
我想捕获每一次邮件移动到一个文件夹中的链接框。
答
将项目添加到文件夹中的集合时会触发事件。例如,假设您的默认收件箱下面有一个名为“Stuff”的文件夹。此代码将触发每一个邮件移动到一个文件夹时间:
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olApp As Outlook.Application
Set olApp = Outlook.Application
Set Items = GetNS(olApp).GetDefaultFolder(olFolderInbox).Folders("Stuff").Items
End Sub
Private Sub Items_ItemAdd(ByVal item As Object)
On Error GoTo ErrorHandler
MsgBox "You moved an item into the 'Stuff' folder."
ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub
Function GetNS(ByRef app As Outlook.Application) As Outlook.NameSpace
Set GetNS = app.GetNamespace("MAPI")
End Function
粘贴到这个ThisOutlookSession并重新启动Outlook。每当电子邮件被移动到该文件夹时,您将看到弹出窗口。
是啊,嗯,你使用的物品,但我有4个邮箱(有些是共享箱),我有一个数百万个文件夹(如果你知道是活链接框)。问题似乎是项目列表,或者我可以在选择文件夹时设置列表,我想我的第一个问题不够准确 – forX
没有真正的“项目移动”事件(我很想听否则),你必须通过检查ItemAdd事件来回到它。如果它激发,则将项目添加到引用文件夹的项目集合中。我们简单地假设(因为它不是收件箱)该项目被移动。 – JimmyPena