Finding an email address based on a name

C

cherman

Hi there. I am working in Access 2003 with a reference to Outlook 2003. Is
there a way in VBA to find an email address based on a name? Maybe something
like using the Select Names dialog when you click the To... button on an
email message?

I can obviously do this manually by typing in the name and showing results
from the Global Address List, but I could have hundreds to do and I would
love to populate a table automatically behind the scenes.

Thanks in advance,
Clint
 
C

cherman

Thank you. I can get the code to work with my existing code and get the test
to pan out (that the recipient is in the address book), but how do I capture
the actual email address?

Thanks again!
Clint
 
D

Dmitry Streblechenko

After you successfully call Recipient.Resolve, Recipeint.Address will give
you what you need.

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

cherman

Hi there again. When I use this, I get a string like these.

..../ou=Exchange Administrative Group
(FYDIBOHF23SPDLT)/cn=Recipients/cn=cghermaX

..../OU=Americas01/cn=Recipients/cn=dmahesh

Although I can use the name or alias to populate an email, I really need the
actual email address. I've been looking online, but I just can't seem to
figure this out.

Any suggestions?

Thanks,
Clint
 
D

Dmitry Streblechenko

That *is* the actual e-mail address. It just happens to be of EX type, while
you probably need SMTP.
If you are using Outlook 2007 or higher, you can use
ExchangeUser.PrimarySmtpAddress property (ExchangeUser object is returned by
the AddressEntry.GetExchangeUser method, which can return null).

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

cherman

Thanks a lot for your continued help. Sorry, but as I mentioned before, I'm
using Outlook 2003.

I mentioned in a previous post that I know what is returned is an actual
email address. This will work just fine for my internal needs. However, my
users will be exporting contact lists that will go all over the place, so the
SMTP address is the only one that will do. We cannot pass something like
"Clint Herman" outside of our own Exchange environment as an email address.

Any more suggestions? I thought it would be easy to get the SMTP. Maybe it
is and I just can't seem to hit the target. Is there somewhere online that
has a complete example of this?

Thanks again!
Clint
 
D

Dmitry Streblechenko

If you cannot use Outlook 2007, your only options are either Extended MAPI
(C++/Delphi) or <plug> Redemption: it exposes SmtpAddress propertty in all
versions of Outlook - you can use somethng like the following:

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set AddrEntry = Session.AddressBook.ResolveName("dmitry streblechenko")
strSmtpAddress = AddrEntry.SmtpAddress
MsgBox strSmtpAddress

</plug>

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

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