Я пытаюсь использовать Word VBA для отправки документа получателю электронной почты.По большей части это не сложно.Пока у меня есть этот код:
With oItem
'Set the recipient for the new email
.To = "person1@mail.com"
'Set the recipient for a copy
.CC = "ccperson@mail.com"
'Set the subject
.Subject = "Blah blah"
End With
Моя проблема в том, что в Outlook настроено несколько адресов электронной почты отправителя, и Outlook по умолчанию выбирает неправильный адрес.
Есть ли способ указать адрес электронной почты отправителя, используя метод выше?Само собой разумеется, интуитивно понятная строка кода для указания адреса отправителя (.From = me@wherever.com
) не работает.Спасибо.
ОБНОВЛЕНИЕ:
Я наконец-то заставил свой код работать после его модификации, используя рекомендации от peakpeak и Dimitry ниже.Мои изменения были
1), чтобы включить ссылку на библиотеку объектов Microsoft Outlook 16, чтобы я мог получить доступ к типу данных Outlook.MailItem
.Письмо будет отправлено в порядке с кодом выше (без ссылки), но всегда будет отправлено с неправильным адресом от.
2) Объявите почтовый элемент как Outlook.MailItem
.Похоже, это активировало поле SentOnBehalfOfName
.
3) Использовал мой желаемый адрес От: адрес электронной почты в поле SentOnBehalfOfName
.
Вот рабочий код:
Dim MAPIMailItem As Outlook.MailItem
Set MAPIMailItem = olkApp.CreateItem(olMailItem) 'Create a new mail message
With MAPIMailItem
.BodyFormat = olFormatPlain
.to = strTo
' SentOnBehalfOfName sets the From field on my machine,
' AFTER I declared MAPIMailItem as Outlook.MailItem
.SentOnBehalfOfName = "fromAddress@foo.com"
.Subject = strSubject
.body = strBody
.attachments.Add strAtt
'.send
.Display
End With