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
--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54
"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.ol FolderContacts);
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 ) ?
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 ).