アルパカのメモ

メール受信イベント (NewMailEx)

NewMailEx

このイベントは、Outlook が受信したすべてのアイテムについて発生する。 アイテムの種類はメールに限らず、例えば、MailItem, MeetingItem, SharingItem 等が該当する。 引数の EntryIDsCollection が受信した Item の ID なので、Item オブジェクトを取得する場合は、NameSpace.GetItemFromID メソッドを使用する。

当メソッドは、一度に複数アイテムを受信した場合に、受信したアイテムの件数分並列で実行されることも考えられる。 ただ VBA はマルチスレッドには対応していないはずなので、1件目の処理中に2件目の受信イベントが発生した場合は、1件目が中断されるか2件目が実行されないかのどちらかになると思う。 そのため、NewMailEx をトリガーとしたい場合は、受信したアイテムのIDをどこかに保存する程度にとどめておいて、別途本当に行いたい処理を起動するような仕組みにした方がいい。

Exchange Server account を使っている場合、当メソッドは Outlook 起動中にサーバーにメッセージが届いたときのみ発生する。 Outlook が起動していない間にサーバーに届いたメッセージについては、Outlook に同期されても NewMailEx イベントが発生しない。