For Outlook 2007 or later, once you get the address from the contact in X.400
(Exchange) format, use it as the argument for the Namespace.CreateRecipient
method to return a Recipient object. Then use the
Recipient.AddressEntry.GetExchangeUser method to return an ExchangeUser
object and get its PrimarySmtpAddress address:
Set recip = mapiNamespace.CreateRecipient(contactemail)
If recip.Resolved Then
Set ae = recip.AddressEntry
If ae.AddressEntryUserType = olExchangeUserAddressEntry Then
Set exUser = ae.GetExchangeUser
smtp = exUser.PrimarySmtpAddress
End If
End If
"JohnLee" wrote:
> At the moment I'm working on outook 2007...
> >>
> >> I'm trying to programmatically access the my contacts from outlook, which
> >> I
> >> did using the following code:
> >>
> >> var outlookApplication = new ApplicationClass();
> >>
> >> NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI");
> >>
> >> MAPIFolder searchFolder =
> >> mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
> >>
> >> The problem is that any email address (Email1Address) retrieved which is
> >> connected to the same local Microsoft exchange server is retrieved in the
> >> following format:
> >>
> >> /o=First Organization/ou=Exchange Administrative Group
> >> (FYDIBHDO23SPDLT)/cn=Recipients/cn=John Lee
> >>
> >>
> >>
> >> Is it possible to retrieve or somehow convert the address to the usual
> >> email
> >> format (John.Lee@server.com) ?
> >>
> >> I need to retrieve the certificate linked to the particular email, but as
> >> far as I know it can only be correctly matched by searching by email
> >> address
> >> (using the format John.Lee@server.com).
> >>
>