第二个帐户的收件箱的事件监听器

时间:2018-02-27 20:01:00

标签: vba excel-vba email outlook outlook-vba

我正在尝试创建一个事件监听器:

  • 我的Outlook会话中有两个帐户。
  • 我想监控帐户(2)是否有新电子邮件。
  • 当在帐户(2)的收件箱中收到新电子邮件时,我想复制该电子邮件的主题&身体并将其发送给另一个人。

我尝试过类似的东西:

For Each oAccount In Application.Session.Accounts

    If oAccount = "fakeemail@outlook.com" Then

1 个答案:

答案 0 :(得分:0)

您需要通过Application.Session.Folders

按文件夹名称访问您的第二个帐户

GetDefaultFolder不适用于其他商店或邮箱。

或者您可以使用For Each oAccount In Application.Session.Accounts获取GetDefaultFolder,但如果您已经知道帐户名称 fakeemail@outlook.com ,则不要使用它。

实施例

Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
    Dim olNs As Outlook.NameSpace
    Dim Inbox  As Outlook.Folder

    Set olNs = Application.GetNamespace("MAPI")
    Set Inbox = olNs.Folders("fakeemail@outlook.com") _
                    .Folders("Inbox")
    Set Items = Inbox.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
    If TypeOf Item Is Outlook.mailitem Then
        Debug.Print Item.Subject
    End If    
End Sub

FYI代码转到ThisOutlookSession