Estou tentando criar um script VB no Outlook que passe pelas minhas pastas de contatos padrão e observe os e-mails de cada contato .Email1Address e converta o "EX" Email1AddressType em uma string e grave-o na propriedade .User1.
O objetivo é poder sempre exportar do Outlook os endereços SMTP dos meus contatos que são armazenados como "EX" quando eu os adiciono da GAL.
Acho que estou fora do alvo aqui, e qualquer ajuda seria apreciada. Muito obrigado:
Public Sub User1SMTPAddress()
Dim objOL As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objContact As Outlook.ContactItem
Dim objItems As Outlook.Items
Dim objContactsFolder As Outlook.MAPIFolder
Dim oExUser As Outlook.ExchangeUser
Dim obj As Object
Dim SMTPEmailAddress As String
Dim MyContactID As String
Dim oPA As Outlook.PropertyAccessor
On Error Resume Next
Set objOL = CreateObject("Outlook.Application")
Set objNS = objOL.GetNamespace("MAPI")
Set objContactsFolder = objNS.GetDefaultFolder(olFolderContacts)
Set objItems = objContactsFolder.Items
For Each obj In objItems
If obj.Class = olContact Then
Set objContact = obj
With objContact
Set oPA = objContact.PropertyAccessor
MyContactID = oPA.BinaryToString_(oPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0C190102"))
Set oSender = Globals.objNS.GetAddressEntryFromID(MyContactID)
oExUser = oSender.GetExchangeUser()
SMTPEmailAddress = oExUser.PrimarySmtpAddress
.User1 = SMTPEmailAddress
.Save
End With
End If
Err.Clear
Next
Set objOL = Nothing
Set objNS = Nothing
Set obj = Nothing
Set objContact = Nothing
Set objItems = Nothing
Set objContactsFolder = Nothing
End Sub