Следующий фрагмент кода работает в Windows 10 / Outlook 2013.
В Windows 10 / Outlook 2016 я получаю сообщение об ошибке в строке .send
:
Ошибка времени выполнения -2147219712 (80040600): `Операция не выполнена.
Интерфейсы обмена сообщениями возвратили неизвестную ошибку. Если проблема не устранена, перезапустите Outlook. Не удается разрешить получателя.
Option Explicit
Sub email_test()
Dim objOutlookApp As Outlook.Application
Dim objOriginalItem As Outlook.MailItem
Dim objNewItem As Outlook.MailItem
Dim objInspector As Outlook.Inspector
Dim objRecipient As Outlook.Recipient
Dim strEmailAddress As String
Dim strSubject As String
Set objOutlookApp = GetObject(, "Outlook.Application")
Set objInspector = objOutlookApp.ActiveInspector
'Set objOriginalItem so that it can be referenced
Set objOriginalItem = objInspector.CurrentItem
'Set objNewItem to create the new message.
Set objNewItem = objOutlookApp.CreateItem(0)
'Store the original body into the new item body
'Note: objNewItemBody was altered by code not shown here
objNewItem.Body = objOriginalItem.Body
'Note: strEmailAddress was altered by code not shown here
strEmailAddress = "unique_ name@hotmail.com"
Set objRecipient = objOutlookApp.Session.CreateRecipient(strEmailAddress)
objRecipient.Resolve
MsgBox ("The objrecipient.resolved status is: " & objRecipient.Resolved)
'Set the fields of the MailItem. Note: objNewItem.Body was previously set
With objNewItem
.Display
.Subject = objOriginalItem.Subject
.To = objRecipient
'Loop through the attachments in objOriginalItem
'Save them to the user's temp folder.
'Attach them to objNewItem.
.Send
End With
EXUNT:
Set objOutlookApp = Nothing
Set objOriginalItem = Nothing
Set objNewItem = Nothing
Set objInspector = Nothing
End Sub
В Outlook 2016 MsgBox
означает «Истина», в интерфейсе пользователя есть окно, открытое для нового почтового объекта, и адрес электронной почты с соответствующим форматированием.
Когда я нажимаю на поле «Кому» и затем нажимаю «Отправить», электронное письмо отправляется.
Outlook 2013 выдает MsgBox
, указывающий «Ложь», но все равно отправляет электронное письмо с вмешательством пользователя.
Как решить эту проблему в Outlook 2016, чтобы отправлять электронную почту без вмешательства пользователя?