2016-03-29 6 views
0

Ich arbeite an einem Add-In, das ausgeführt wird, wenn eine E-Mail gesendet wird. Wenn die Nachricht einen bestimmten Text enthält, wird das Senden der Nachricht abgebrochen und in Entwürfe verschoben. Dies funktioniert beim Senden von E-Mails direkt aus Outlook, aber es wird nicht ausgeführt, wenn die E-Mail von einem anderen Programm erstellt und über Outlook gesendet wird. In diesem Fall wird die E-Mail für einige Sekunden in den Postausgang verschoben und dann wie gewohnt gesendet.Outlook Add-In Application.ItemSend nicht ausgeführt

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 

Antwort

0

Was ist das andere Programm? Wenn die Nachricht mit Extended MAPI gesendet wird, wird Application.ItemSend nicht ausgelöst.

+0

Das andere Programm ist Gebots-Software, die wir einfach gehen. Ich bin nicht sicher, wie es die E-Mail sendet, außer dass es Outlook durchläuft. – Fercstar

+0

Sehen Sie, dass das Ereignis in OutlookSpy ausgelöst wird (klicken Sie auf Anwendung, wechseln Sie zur Registerkarte Ereignisse, sehen Sie sich das Protokoll am unteren Rand des Fensters an)? –

+0

Das einzige Ereignis, das ausgelöst wurde, war, als ich die E-Mail erhielt (ich schickte es mir selbst). Nichts ist passiert, als es gesendet hat. – Fercstar