![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
![]()
Hello,
I am trying to get the PR_EMAIL_ADDRESS_W and PR_SMTP_ADDRESS_W properties from a MAPI table. I expect to see text of the usual form: but instead I sometimes see things like: * John * (John Doe) Any ideas on why? I don't understand why this extraneous information would appear in these fields. Thanks so much for any help! Aamir |
Ads |
#2
|
|||
|
|||
![]()
Which table? See where and how? What are the erelevant snippets of your
code? -- Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool - "Aamir" wrote in message ... Hello, I am trying to get the PR_EMAIL_ADDRESS_W and PR_SMTP_ADDRESS_W properties from a MAPI table. I expect to see text of the usual form: but instead I sometimes see things like: * John * (John Doe) Any ideas on why? I don't understand why this extraneous information would appear in these fields. Thanks so much for any help! Aamir |
#3
|
|||
|
|||
![]()
Sorry for the delay - here is the basic gist of what I have. I looked
online and found a few caveats on using cached exchange mode - any insights you have about that and this in general are very appreciated. Thanks so much to any and all with input. private ListString GetRecipientAddresses(RDOMail rdoMail){ MAPITable mapiTable = rdoMail.Recipients.MAPITable; mapiTable.Columns = { PR_ADDRTYPE_W, PR_DISPLAY_NAME_W, PR_SMTP_ADDRESS_W, PR_EMAIL_ADDRESS_W, PR_RECIPIENT_TYPE, PR_DISPLAY_TYPE }; mapiTable.GoToFirst(); ListString addresses = new ListString(); Object[] rows; while((rows = (Object[])mapiTable.GetRows(32)) != null) { foreach(Object[] row in rows) { // the following line just sets up a dictionary for key - value mappings IPropertyMap propertyMap = new KeyValueRowSource(desiredPropertyKeys, row); String address = GetAddress(propertyMap); addresses.Add(address); } } return addresses; } private static String GetAddress(IPropertyMap recipient) { String address; String psAddressType = recipient.GetPropertyString(PR_ADDRTYPE_W) as String; switch(psAddressType) { case "EX": address = recipient.GetPropertyString(PR_SMTP_ADDRESS_W) as String; break; case "SMTP": address = recipient.GetPropertyString(PR_EMAIL_ADDRESS_W) as String; break; } return address; } |
#4
|
|||
|
|||
![]()
Oh, and to be clear, I'm pretty sure the SMTP case in GetAddress is
the one that produces the extra data instead of a pure address. |
#5
|
|||
|
|||
![]()
Are you sure you defined PR_EMAIL_ADDRESS_W and PR_SMTP_ADDRESS_W correctly?
What do yo usee in OutlookSpy (click IMessage, go to the GetRecipientTable tab)? -- Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool - "Aamir" wrote in message ... Sorry for the delay - here is the basic gist of what I have. I looked online and found a few caveats on using cached exchange mode - any insights you have about that and this in general are very appreciated. Thanks so much to any and all with input. private ListString GetRecipientAddresses(RDOMail rdoMail){ MAPITable mapiTable = rdoMail.Recipients.MAPITable; mapiTable.Columns = { PR_ADDRTYPE_W, PR_DISPLAY_NAME_W, PR_SMTP_ADDRESS_W, PR_EMAIL_ADDRESS_W, PR_RECIPIENT_TYPE, PR_DISPLAY_TYPE }; mapiTable.GoToFirst(); ListString addresses = new ListString(); Object[] rows; while((rows = (Object[])mapiTable.GetRows(32)) != null) { foreach(Object[] row in rows) { // the following line just sets up a dictionary for key - value mappings IPropertyMap propertyMap = new KeyValueRowSource(desiredPropertyKeys, row); String address = GetAddress(propertyMap); addresses.Add(address); } } return addresses; } private static String GetAddress(IPropertyMap recipient) { String address; String psAddressType = recipient.GetPropertyString(PR_ADDRTYPE_W) as String; switch(psAddressType) { case "EX": address = recipient.GetPropertyString(PR_SMTP_ADDRESS_W) as String; break; case "SMTP": address = recipient.GetPropertyString(PR_EMAIL_ADDRESS_W) as String; break; } return address; } |
#6
|
|||
|
|||
![]()
Hi Dmitry,
Unfortunately I am hearing about this from a user, so I don't have an email to check in OutlookSpy. PR_EMAIL_ADDRESS_W = 0x3003001F PR_SMTP_ADDRESS_W = 0x39FE001F |
#7
|
|||
|
|||
![]()
The tags look fine to me.
Can you ask your user to install OutlookSpy? Or at least save the message as an MSG file and zip it? -- Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool - "Aamir" wrote in message ... Hi Dmitry, Unfortunately I am hearing about this from a user, so I don't have an email to check in OutlookSpy. PR_EMAIL_ADDRESS_W = 0x3003001F PR_SMTP_ADDRESS_W = 0x39FE001F |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Can't get SMTP address of contact that shares email address of an Exchange user | Jeff | Outlook and VBA | 14 | January 15th 09 01:50 AM |
SMTP Rejected email address | FyrFtrEmt | Outlook Express | 4 | June 19th 06 12:10 AM |
MAPI unable to load info | Andy outlook issue | Outlook - General Queries | 1 | April 18th 06 10:19 AM |
How to determine what SMTP address email was sent to? | BCole8888 | Outlook - General Queries | 3 | February 8th 06 04:08 PM |
Why do all of my contact email address have SMTP at the end? | Al S. | Outlook - Using Contacts | 1 | February 7th 06 04:32 PM |