ConversationID это `Nothing` в VSTO Application.ItemSend sub - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь создать приложение для отслеживания эффективности, которое на базовом уровне определит, насколько быстро я отвечаю на электронные письма.

Я думаю, что, возможно, использую неправильный триггер «отправленный элемент»событие, хотя, потому что идентификатор разговора nothing для некоторых ответов в подпункте ниже Application_ItemSend:

Public Class ThisAddIn
    Public Shared ConversationThreads As Dictionary(Of String, Date)

    Private Sub Application_NewMailEx(EntryIDCollection As String) Handles Application.NewMailEx
        For Each itemID In Split(EntryIDCollection, ",")
            Dim item = Application.Session.GetItemFromID(itemID)
            If TypeName(item) = "MailItem" Then
                'is it a Tracked Email
                Dim msg As Outlook.MailItem
                msg = item
                ConversationThreads.Add(msg.ConversationID, Now())
            End If
        Next

    End Sub

    Private Sub Application_ItemSend(Item As Object, ByRef Cancel As Boolean) Handles Application.ItemSend
        If TypeName(Item) = "MailItem" Then
            'is it a Tracked Email
            Dim msg As Outlook.MailItem
            msg = Item
            For Each tRecipient As Outlook.Recipient In msg.Recipients
                If Not msg.ConversationID Is Nothing AndAlso
                    ConversationThreads.ContainsKey(msg.ConversationID) Then
                      Call OpenCloseThread(msg.ConversationID)
                End If


            Next
        End If

    End Sub

end class

Должен ли я использовать другой триггер для этого подпункта?

1 Ответ

0 голосов
/ 23 ноября 2018

Позвоните msg.Save() перед прочтением свойства ConversationID.

...