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
他のプログラムは、単なる入札ソフトウェアです。 Outlookを経由する以外の方法で電子メールを送信する方法がわかりません。 – Fercstar
OutlookSpyでイベントが発生したことを確認しますか(アプリケーションをクリックし、イベントタブに移動し、ウィンドウの下部にあるログを確認します)。 –
唯一起こったのは、私がEメールを受け取ったときでした(自分で送った)。送信時に何も起こらなかった。 – Fercstar