VB.net 2005 Отправка электронных писем с Outlook 2003
В настоящее время мы используем следующий код для создания электронной почты в Outlook, чтобы пользователь мог вводить то, что он хочет в Outlook, а затем, когда электронная почта отправляется, система запрашивает у них, хотят ли они сохранить электронную почту.
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 ответа
Закончилось изменением цикла на:
While Not objOutlook.ActiveInspector Is Nothing
End While
Это решило проблему.
У меня нет большого опыта программирования Outlook через VB.NET, но этот цикл, безусловно, выглядит подозрительно. Возможно, вам следует попробовать воспользоваться услугами инспектора Close
событие вместо неоднократной проверки его CurrentItem
имущество. Если я не ошибаюсь, вы сможете представить свой диалог в обработчике событий.