【问题标题】:How do I listen to "ItemAdd" for all my "Sent items" folders?如何收听所有“已发送项目”文件夹的“ItemAdd”?
【发布时间】:2016-06-21 08:51:18
【问题描述】:

我的 Outlook 包含 3 个用户邮箱(缓存)和 10 个共享邮箱(在线)。

我需要捕捉这些邮箱中的邮件何时发送,所以我在 Google 上搜索说我应该听“ItemAdd”事件。

问题是,没有触发 ItemAdd 事件。

这是我的测试代码:

Imports System.Runtime.InteropServices

Public Class ThisAddIn

    Private sentFolders As New List(Of Outlook.Folder)


    Private Sub ThisAddIn_Startup() Handles Me.Startup
        Call InitSentFolders()
    End Sub


    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
    End Sub


    Private Sub InitSentFolders()
        Dim ns As Outlook.NameSpace = Application.GetNamespace("MAPI")
        Dim stores As Outlook.Stores = ns.Stores
        For i As Integer = 1 To stores.Count
            Try
                Dim store As Outlook.Store = stores(i)
                Try
                    Dim sentFolder As Outlook.Folder = TryCast(store.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderSentMail), Outlook.Folder)
                    AddHandler DirectCast(sentFolder.Items, Outlook.Items).ItemAdd, AddressOf ItemAdd
                    sentFolders.Add(sentFolder)
                Catch ex As Exception
                End Try
                Marshal.ReleaseComObject(store)
            Catch ex As Exception
            End Try
        Next
        Marshal.ReleaseComObject(stores)
        Marshal.ReleaseComObject(ns)
    End Sub


    Private Sub ItemAdd(ByVal ItemObject As Object)
        If TypeOf (ItemObject) Is Outlook.MailItem Then
            Dim item As Outlook.MailItem = CType(ItemObject, Outlook.MailItem)
            MsgBox(item.Sender.ToString)
            Marshal.ReleaseComObject(item)
        End If
    End Sub

End Class

知道为什么它没有被解雇吗?

谢谢

【问题讨论】:

    标签: outlook vsto outlook-addin


    【解决方案1】:

    对于初学者来说这是一个广泛传播的错误......

    您需要在全局范围内(例如,在加载项类中)声明源对象并使其保持活动状态以获取事件。或者垃圾收集器扫过堆并且源对象将被销毁。

    根据您的情况,定义一个 Outlook 文件夹列表,您可以在其中保存所有引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 2019-10-08
      • 2012-08-31
      • 2019-05-07
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      相关资源
      最近更新 更多