2017-12-07 25 views
0

送信ボタンがメールで送信されたときにトリガするOutlookアドオンを作成しています。特定の条件が満たされている場合は、電子メールを送信したい。トリガアイテムアドオンを使用して送信トレイからアイテムが送信されているときに送信する

これは完全に機能します。しかし、送られたたくさんの電子メールは、別のプログラムを通してOutlookに渡され、下書きフォルダに入り、ゆっくりと送信されます。送信ボタンがクリックされていない電子メールが送信されたときのイベントハンドラはありますか?

編集:私はsend()メソッドは、電子メールを送信するために呼び出すことができることを

見つけた - このメソッドが呼び出された場合、それは私のコードを実行するときにチェックすることは可能でしょうか?

+0

送信するために下書きに行きません。送信トレイに移動します。ドラフトはおそらく途中でメッセージを送信する前にメッセージを作成するのに十分な時間がかかっているかもしれません。もしあなたが尋ねればそこに保存されているかもしれません。 – BugFinder

+0

何らかの理由で私たちが送信するプログラムがドラフトに入れられているようです。私はそれが意味をなさない、そしてOutboxは送信される電子メールがどこに格納されるのか知っています。 – benjiiiii

+0

任意のフォルダからメッセージを送信できます。送信トレイは目玉です。 –

答えて

0

外部アプリケーションがメッセージを送信するためにOutlookオブジェクトモデルを使用している場合、Application.ItemSendイベントはまだ発生します。それ以外の場合は、送信済みアイテムフォルダにItems.ItemAddイベントを使用することをお勧めします。メッセージが実際に送信され、送信済みアイテムフォルダに移動した後にトリガされます。

+0

こんにちはドミトリー、私はこれらの両方を試しました、何らかの理由でItemがOutboxに設定されている場合、ItemAddメソッドをトリガーすることはありません。私はそれをドラフトフォルダに設定すると、それらはトリガされます。私はポップアップを表示してメッセージを保持することができますが、ポップアップが閉じるとすぐに、電子メールは何を送信します。これは、外部アプリケーションがOutlookオブジェクトモデルを使用していないことを意味しますか? – benjiiiii

+0

あなたの回答にSentItemsフォルダが記載されていることに気付きました。特定の条件でブロックされる前にメッセージをキャッチするためにAddOnが必要です。 – benjiiiii

+0

Items.ItemAddイベントはメッセージの送信後にのみ発生します。それをブロックすることはできません。 Application.ItemSendイベントは、メッセージがOutlookオブジェクトモデルまたはUIを使用して送信された場合にのみ発生します。 SimpelまたはExtended MAPIを使用してメッセージを送信しても起動しません。 –

関連する問題