VB.net 2005 Отправка электронных писем с Outlook 2003 - PullRequest
1 голос
/ 29 июля 2010

В настоящее время мы используем следующий код для создания электронной почты в Outlook, чтобы пользователь мог вводить то, что он хочет в Outlook, а затем при отправке электронной почты система запрашивает у них, хотят ли они сохранить электронную почту.1001 *

            Dim objOutlook As Object
            Dim objMessage As Object
            Dim objInspector As Object

            If strEMail <> "" Then
                objOutlook = CreateObject("Outlook.Application")
                objMessage = objOutlook.CreateItem(0)
                objMessage.To = strEMail

                objInspector = objMessage.GetInspector
                objInspector.Display()

                While Not objInspector.CurrentItem Is Nothing
                End While

                frmSaveSentEmail.BringToFront()
                frmSaveSentEmail.ShowDialog()

Код отлично работает в Outlook 2003, если они не используют Word в качестве редактора электронной почты.Однако, когда Word настроен как редактор электронной почты, цикл while, который проверяет, закрыт ли объект электронной почты, никогда не заканчивается.

Есть ли способ справиться с этим по-другому, чтобы он работал даже с Word в качестве редактора?

Ответы [ 2 ]

0 голосов
/ 29 июля 2010

Закончено изменение цикла на:

  While Not objOutlook.ActiveInspector Is Nothing
  End While

Это решило проблему.

0 голосов
/ 29 июля 2010

Я не очень разбираюсь в программировании Outlook через VB.NET, но этот цикл, безусловно, выглядит подозрительно.Возможно, вам следует попробовать воспользоваться событием Close инспектора вместо того, чтобы повторно проверять его свойство CurrentItem.Если я не ошибаюсь, вы сможете представить свой диалог в обработчике событий.

...