Отправить Outlook MailItem, даже если Outlook закрыт
У меня есть приложение.NET, которое позволяет пользователям нажимать кнопку, которая запускает новое предварительно заполненное сообщение в Outlook. Это прекрасно работает по большей части, за одним небольшим исключением. Если у пользователя нет открытого Outlook при отправке сообщения, сообщение будет отправлено в папку "Исходящие", пока он не запустит основное приложение Outlook. Только тогда кажется, что отправка / получение действительно происходит.
Вот фрагмент кода, который я использую для создания MailItem
:
Dim mailItem As Outlook.MailItem = Me.OutlookApplication.CreateItem(Outlook.OlItemType.olMailItem)
mailItem.To = "test@test.com"
mailItem.Subject = "Some Subject"
mailItem.HTMLBody = "Some Text"
mailItem.Display(False)
Я вцепляюсь в ItemSend
событие для Outlook.Application
так что я могу видеть это, когда пользователь нажимает Send
от MailItem
Outlook успешно поднимает событие.
Если Outlook не запускается, когда пользователь запускает сообщение, то создается новый процесс OUTLOOK.EXE. В любом случае на панели задач появится значок, означающий, что Outlook подключен к внешнему приложению.
Могу ли я каким-то образом инициировать отправку / получение с помощью Interop, чтобы я мог гарантировать, что сообщение будет отправлено, не требуя от пользователя отдельного открытия Outlook?
1 ответ
Попробуйте использовать Namespace.SendAndReceive
Помните, что отправка сообщений происходит асинхронно, поэтому необходимо поддерживать Outlook.Application до завершения отправки / получения.