У меня сейчас проблема с проверкой, отправлено ли электронное письмо или нет. До сих пор я пробовал эти три метода подписки на такое событие:
application.ItemSend += ApplicationOnItemSend;
application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderOutbox).Items.ItemAdd += ItemsOnItemAdd;
application.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderSentMail).Items.ItemAdd += ItemsOnItemAdd2;
Все три из них прекрасно работают, когда Outlook полностью открыт, моя проблема возникает, когда вы открываете файл msg с Outlook, который не открывается в фоновом режиме. В этих случаях все, что вы видите, это окно «новое сообщение», и когда вы отправляете почту оттуда, ни одно из этих событий не запускается. Даже если установлен флажок, что письма должны отправляться как можно скорее при наличии сетевого подключения, почта помещается в папку «Исходящие», и при следующем полном запуске Outlook есть одна почта, которая была помещена в папку «Исходящие», но не отправлена полностью. Даже на компьютерах моих коллег без установленного надстройки для Outlook и того же набора параметров (как и должно быть в стандарте) существует та же проблема, что и почта, которая просто помещается в папку «Исходящие».
Я также проверил Я пытаюсь подписаться на эти события, и ни один из моих обработчиков событий не содержит кода, который блокирует фоновые потоки (например, когда я использую MessageBox.Show()
для целей отладки). Так что нет никакой видимой причины, по которой мой код мешает отправке почты.
Точка, в которой я подписываюсь на эти события, также, похоже, не имеет значения. Обычно я подписываюсь при запуске надстройки, но этот метод не вызывается при открытии файла msg. Поэтому я перенес подписку на событие загрузки ленты. Событие load печатает мои отладочные сообщения, указывающие на то, что метод был вызван, но события ItemSend / ItemAdd по-прежнему не запускаются после нажатия кнопки «отправить».
Все это только из-за того, что Outlook работает со сбоями или есть способ, которым я мог бы проверить наличие почта отправляется из окна "новое сообщение"?