Как настроить Outlook из адреса электронной почты из Word VBA - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь использовать 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

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Я использую этот код:

Dim WantedAccount as String ' Set to preferred account name
Set MAPISession = objOutlook.Application.Session     'Get the MAPI Outlook session

Set MAPIMailItem = objOutlook.CreateItem(olMailItem)  'Create a new mail message
With MAPIMailItem
  For Each Account In MAPISession.Accounts
    If Account = WantedAccount Then
      .SendUsingAccount = Account
      Exit For
    End If
  Next
0 голосов
/ 23 сентября 2018

Если вы отправляете через учетную запись Exchange, установите свойство MailItem.SentOnBehalfOfName (при условии, что у вас есть право отправлять сообщения от имени указанного почтового ящика).Если вы отправляете через учетную запись POP3 / SMTP, установите свойство MailItem.SendUsingAccount.

...