2016-03-29 65 views
0

電子メールが送信されたときに実行されるアドインで作業しています。メッセージに特定のテキストが含まれている場合は、メッセージの送信をキャンセルし、メッセージを下書きに移動します。これはOutlookから直接電子メールを送信するときに機能しますが、電子メールが別のプログラムによって生成され、Outlook経由で送信されたときには実行されません。この場合、電子メールは数秒間送信トレイに送られ、通常のように送信されます。Outlookアドイン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

唯一起こったのは、私がEメールを受け取ったときでした(自分で送った)。送信時に何も起こらなかった。 – Fercstar

関連する問題