MyTetra Share
Делитесь знаниями!
Адрес получателя Outlook в поле
Время создания: 22.04.2020 13:54
Текстовые метки: VBA_Outlook
Раздел: !Закладки - VBA - Outlook

Адрес получателя Outlook в поле


Я создаю настраиваемый ответ: изменился внешний вид отправки с учетной записи, и некоторое поле автоматически заполнится.

Сначала я объясню, как это работает, мы получаем электронное письмо. Адрес электронной почты, который получает это электронное

письмо, находится в CC. Я создал

кнопку в верхнем баре.

Когда я нажимаю эту кнопку, открывается новый экран электронной почты с уже заполненной информацией и оставшейся информацией,

которую нам нужно будет заполнить.

Для меня у меня все настроено.

Но я не могу работать. Я хочу, чтобы новое электронное письмо отправлялось в исходный адрес (получателя).

На данный момент у меня есть этот код:


Sub ReplyUsingAccount()

Dim oAccount As Outlook.Account

Dim objItem As Outlook.MailItem

Dim oMail As Outlook.MailItem

Dim strAcc As String

Dim i As Long

Set objItem = ActiveExplorer.Selection.Item(1)

strAcc = "myemail@email.nl"

For Each oAccount In Application.Session.Accounts

If oAccount.DisplayName = strAcc Then

Set oMail = Application.CreateItem(olMailItem)

With oMail

.SendUsingAccount = oAccount

.To = objItem.RecipientEmailAddress

.Subject = "Aangaande uw bestelling bij "

.HTMLBody = "<br><br><br>" & _

"<hr width=""50%"" size=""2"" noshade />" & _

"<font color=""#6699ff"">" & _

objItem.HTMLBody & "</font>"

.Display

End With

End If

Next oAccount

Set oAccount = Nothing

Set objItem = Nothing

Set oMail = Nothing

End Sub


.To = objItem.RecipientEmailAddress не будет работать. У кого-то есть решение для этого.

Заранее спасибо.

vba email outlook-vba outlook

Max van D. 17 февр. '16 в 8:15

источникподелиться

3 ответа

Я предполагаю, что он не возвращает адрес электронной почты SMTP поскольку вы используете возврат свойства .SenderEmailAddress на внутренний адрес электронной почты (что означает, что это будет адрес типа EX, а не SMTP).

Ниже приведен адрес SMTP для внутренних и внешних.

Dim oOutlook As Outlook.Application

Dim senderAddress As String, recipEntryId As String, SmtpMailAddress As String

Dim oAddressEntry As Outlook.AddressEntry, oExchangeUser As Outlook.ExchangeUser

Dim oReply As Outlook.MailItem, oRecipient As Outlook.Recipient

Dim objItem As Outlook.MailItem


If objItem.SenderEmailType = "SMTP" Then


senderAddress = objItem.SenderEmailAddress


Else


Set oReply = objItem.Reply()

Set oRecipient = oReply.Recipients.Item(1)


recipEntryId = oRecipient.EntryID


oReply.Close OlInspectorClose.olDiscard


recipEntryId = oRecipient.EntryID


Set oAddressEntry = oOutlook.GetAddressEntryFromID(recipEntryId)

Set oExchangeUser = oAddressEntry.GetExchangeUser()


senderAddress = oExchangeUser.PrimarySmtpAddress()


End If


SmtpMailAddress = senderAddress

Затем вы можете использовать getSmtpMailAddress переменную в качестве .To адрес электронной почты.

Если вы используете Outlook 2010 или более .PropertyAccessor, существует способ использования свойства .PropertyAccessor. Я никогда не использовал это, но его можно было бы рассмотреть.

 

0 

luke_t 17 февр. '16 в 8:58

источникподелиться

Я не думаю, что RecipientEmailAddress действителен в VBA.

Попробуйте SenderEmailAddress.


Чтобы переместить весь адрес получателя в. .To поля пример будет.

Option Explicit

Sub Example()

Dim olItem As Outlook.MailItem

Dim olReply As MailItem ' Reply

Dim Recipient As Outlook.Recipient

Dim olRecip As String


If Application.ActiveExplorer.Selection.Count = 0 Then

MsgBox "No Item was Selected "

Exit Sub

End If


For Each olItem In Application.ActiveExplorer.Selection

Set olReply = olItem.Reply


For Each Recipient In olItem.Recipients

olRecip = Recipient.address & ";" & olRecip

Next Recipient


With olReply

.To = olRecip ' all the Recipient

.Subject = "Aangaande uw bestelling bij "

.HTMLBody = "<br><br><br>" & _

"<hr width=""50%"" size=""2"" noshade />" & _

"<font color=""#6699ff"">" & _

olReply.HTMLBody & "</font>"

.Display

End With


Next


End Sub


Чтобы добавить адрес отправителя .To = olRecip & ";" & olItem.SenderEmailAddress .To = olRecip & ";" & olItem.SenderEmailAddress

0m3r 19 февр. '16 в 2:56

источникподелиться

Посмотрите другие вопросы по меткам vba email outlook-vba outlook

Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования