Outlookからアイテムが送信されるときに、処理を行うために使用していますApplicationEvents_11_ItemSendEventHandler
(http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.applicationevents_11_itemsendeventhandler.aspxを参照)。
ただし、このイベントは「送信済み」ではなく「送信」で発生するため、送信者、送信時間などの特定の情報を取得できません。
アイテムが実際に送信された後に発生する代替イベントはありますか?このブログ投稿を読みました。http://easyvsto.wordpress.com/2010/07/27/how-to-save-mail-content-when-a-mail-is-sent-from-outlook/ただし、表示されるアイテムに依存することには注意が必要です。ユーザーがこの機能を無効にできることを考慮して、送信済みアイテムフォルダーにあります。
編集:実際に「送信済みアイテムフォルダを監視する」アプローチを試したところ、ItemAdd
イベントは最初に送信した電子メールに対してのみ発生し、Outlookを再起動するまで発生しないことに気付いたことを追加する必要があります。私のコードは次のとおりです。
var sentMail = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail);
sentMail.Items.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd);
そして私の方法...
void Items_ItemAdd(object item)
{
MessageBox.Show(((Outlook.MailItem)item).Subject);
}