2016-03-29 3 views
0

Я работаю над надстройкой, которая запускается при отправке письма. Если сообщение содержит определенный текст, оно отменяет отправку сообщения и переводит его в черновики. Это работает при отправке писем непосредственно из Outlook, но не выполняется, когда электронное письмо генерируется другой программой и отправляется через Outlook. В этом случае электронное письмо отправляется в папку «Исходящие» в течение пары секунд, а затем отправляется, как обычно.Outlook Add-In Application.ItemSend не работает

Private Sub OnItemSend(Item As System.Object, ByRef Cancel As Boolean) _ 
        Handles Application.ItemSend 


    Dim mail As Outlook.MailItem = TryCast(Item, Outlook.MailItem) 
    Dim myNameSpace As Outlook.NameSpace 
    Dim myDestFolder As Outlook.Folder 
    Dim mydrafts As Outlook.Folder 
    myNameSpace = Application.GetNamespace("MAPI") 
    mydrafts = myNameSpace.GetDefaultFolder(OlDefaultFolders.olFolderDrafts) 
    myDestFolder = mydrafts 
    If InStr(mail.Body, "Message") = 1 Then 

     Cancel = True 
     mail.Move(myDestFolder) 



    End If 


End Sub 

ответ

0

Что такое другая программа? Если сообщение отправлено с использованием расширенного MAPI, Application.ItemSend не будет срабатывать.

+0

Другая программа - предлагать цену программное обеспечение, которое мы просто идем. Я не уверен, как он отправляет электронное письмо, кроме того, что он проходит через Outlook. – Fercstar

+0

Вы видите этот пожар событий в OutlookSpy (нажмите «Приложение», перейдите на вкладку «События», посмотрите журнал в нижней части окна)? –

+0

Единственное событие, которое было уволено, было когда я получил письмо (я отправил его самому себе). Ничего не случилось, когда оно было отправлено. – Fercstar

Смежные вопросы