Отправить 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 от MailItemOutlook успешно поднимает событие.

Если Outlook не запускается, когда пользователь запускает сообщение, то создается новый процесс OUTLOOK.EXE. В любом случае на панели задач появится значок, означающий, что Outlook подключен к внешнему приложению.

Могу ли я каким-то образом инициировать отправку / получение с помощью Interop, чтобы я мог гарантировать, что сообщение будет отправлено, не требуя от пользователя отдельного открытия Outlook?

1 ответ

Решение

Попробуйте использовать Namespace.SendAndReceive

Помните, что отправка сообщений происходит асинхронно, поэтому необходимо поддерживать Outlook.Application до завершения отправки / получения.

Другие вопросы по тегам