0
My Outlookは、3つのユーザーメールボックス(キャッシュ)と10の共有メールボックス(オンライン)で構成されています。すべての「送信済みアイテム」フォルダの「ItemAdd」を聞くにはどうすればよいですか?
これらのメールボックスのいずれかのメールが送信されたときに私は捕捉する必要があるので、私は "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
それが発射されていない理由を任意のアイデア:
ここに私のテストコードがですか?あなたが(例えば、アドインクラスで)グローバルスコープでソースオブジェクトを宣言しに生き、それを維持する必要がある初心者のため広く普及間違いです
おかげ