Reading SMTP address from Exchange Sender mail address

V

VebKol

Hi

I'm facing problems getting SMTP address from Exchange sender mail address.
- Using Redemption :)

I have used this line to loop recipients
PrSMTPAddress = &H39FE001E
SMTPAddress =
utils.HrGetOneProp(MailItem.Recipients(t).AddressEntry.MAPIOBJECT,
PrSMTPAddress)

And everything is working fine.

But when I try to do the following :

PrSMTPAddress = &HC1F001E
SMTPAddress = utils.HrGetOneProp(MailItem.MAPIOBJECT, PrSMTPAddress)

for the Exchange sender, I only get address like this :
/O=server/OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=name

for external senders the mail address is ok :)


Do any one have a clue ?
 
K

Ken Slovak - [MVP - Outlook]

PR_SENDER_EMAIL_ADDRESS (&HC1F001E) is isn't guaranteed to be an SMTP
address. If the sender is an internal sender you will get the Exchange DN,
as you've seen.

You can check to see if the address type is SMTP by checking
PR_SENDER_ADDRTYPE (0x0C1E001E), a PT_STRING8 value. In that case you need
to use PR_SMTP_ADDRESS (&H39FE001E).

PR_SMTP_ADDRESS is not available in cached mode. You would use
PR_EMS_AB_PROXY_ADDRESSES (&H800F101E) in cached mode, which is a
PT_MV_STRING8 (string array) property.
 
V

VebKol

Again Mr. Slovak : You are the KING !!!!!

Thanks : "all" my problems are now sloved !

:) :) :)

--
Regards
OD


Ken Slovak - said:
PR_SENDER_EMAIL_ADDRESS (&HC1F001E) is isn't guaranteed to be an SMTP
address. If the sender is an internal sender you will get the Exchange DN,
as you've seen.

You can check to see if the address type is SMTP by checking
PR_SENDER_ADDRTYPE (0x0C1E001E), a PT_STRING8 value. In that case you need
to use PR_SMTP_ADDRESS (&H39FE001E).

PR_SMTP_ADDRESS is not available in cached mode. You would use
PR_EMS_AB_PROXY_ADDRESSES (&H800F101E) in cached mode, which is a
PT_MV_STRING8 (string array) property.
 
D

Dmitry Streblechenko

If you are already using Redemption, you do not need to jump through all
these hoops, Redemption will do that for you: simply read the
Sender.SmtpAddress property.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
 
J

juacasco

i-ve used tthe following code in outlook 2007 and i worked great!

MsgBox fnGetSMTPAddress("/O=CNPJCO/OU=CLAC/CN=RECIPIENTS/CN=1057003")

Public Function fnGetSMTPAddress(ExchangeMailAddress As String) As String
Dim objOutlook As Outlook.Application
Dim objMailItem As Outlook.MailItem

Set objOutlook = New Outlook.Application
Set objMailItem = objOutlook.CreateItem(0)
objMailItem.To = ExchangeMailAddress
objMailItem.Recipients.ResolveAll
On Error Resume Next
If objMailItem.Recipients.Item(1).Resolved Then
fnGetSMTPAddress =
objMailItem.Recipients.Item(1).AddressEntry.GetExchangeUser.PrimarySmtpAddress
If Err.Number <> 0 Then fnGetSMTPAddress = ExchangeMailAddress
Else
fnGetSMTPAddress = ExchangeMailAddress
End If
Set objMailItem = Nothing
Set objOutlook = Nothing

End Function

I hope it is useful 4 u...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top