2015-06-16 3 views
0

Я часто хочу, чтобы изменить данные отправителя в настоящее время открытой почты Это хорошо сделано следующим кодом:Перспективы VBA - набор sentonbehalf и Refresh ActiveInspector

Sub AktiveMailSetVonHotline() 
    Dim oMail As Outlook.MailItem 
    Set oMail = ActiveInspector.CurrentItem 
    oMail.SentOnBehalfOfName = "[email protected]" 
End Sub` 

только вопрос/недостаток является: После запуска, что macro Я не вижу, что отправитель установлен по желанию. Для этого я хотел бы обновить видимую почту (окно инспектора)

+0

Я хватаю по электронной почте в общей папке, а затем, как правило, просто нажмите ответ - но почта должна быть отправлена ​​от имени «горячей линии @ ...» Я могу установить это быстро с кодом выше. Однако я не вижу никаких изменений в окне Outlook - он по-прежнему отображает мой личный адрес электронной почты – Volker

ответ

1

Чтобы сделать из этикетки показать правильное значение, необходимо установить свойство PR_SENT_REPRESENTING_EMAIL_ADDRESS (имя DASL http://schemas.microsoft.com/mapi/proptag/0x0065001F) с помощью MailItem.PropertyAccessor.SetProperty.

UPDATE:

В качестве теста, вы можете попробовать выполнить следующий сценарий из OutlookSpy - создать новое сообщение в Outlook, нажмите кнопку «Script» на OutlookSpy ленте в инспекторе сообщения, вставьте Приведенный ниже сценарий, нажмите кнопку Выполнить:

set Msg = Application.ActiveInspector.CurrentItem 
Msg.PropertyAccessor.SetProperty "http://schemas.microsoft.com/mapi/proptag/0x0065001F", "[email protected]" 
+0

Я очень старался с этим намеком, но он просто бьет меня. Я могу запустить PropertAccessor в текущей открытой почте. Однако я могу использовать неправильную схему/значение. Я также не нахожу список всех схем. В добавление может быть, что свойство правильно установлено, но окно не обновляется. – Volker

+0

См. Обновленный ответ выше. –

+0

Существует одно предостережение: если вы установили PR_SENT_REPRESENTING_EMAIL_ADDRESS на SMTP-адрес и отправили сообщение без сохранения, вы можете получить NDR. Вам нужно будет вернуть это свойство обратно на адрес типа EX в обработчике событий Item.Send или Application.ItemSend. –

0

Похоже, вас интересует свойство класса MailItem SendUsingAccount, которое позволяет установить объект учетной записи, который представляет учетную запись, под которой находится MailItem. быть отправлен. Например:

Sub SendUsingAccount() 
    Dim oAccount As Outlook.account 
    For Each oAccount In Application.Session.Accounts 
    If oAccount.AccountType = olPop3 Then 
    Dim oMail As Outlook.MailItem 
    Set oMail = Application.CreateItem(olMailItem) 
    oMail.Subject = "Sent using POP3 Account" 
    oMail.Recipients.Add ("[email protected]") 
    oMail.Recipients.ResolveAll 
    oMail.SendUsingAccount = oAccount 
    oMail.Send 
    End If 
    Next 
End Sub 
+0

Если вы устанавливаете SentOnBehalfOfName на имя другого объекта Exchange, от имени которого вы можете отправить, нет отдельного объекта учетной записи для использования при настройке свойство SendUsingAccount. –

+0

На данный момент мы не знаем, что именно должен был сделать плакат. Возможно, нет необходимости использовать свойство SentOnBehalfOfName. –

+0

Я думаю, что нет необходимости в доступе к другому аккаунту (в моем случае) – Volker

Смежные вопросы