Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Add-ins for Outlook (http://www.outlookbanter.com/add-ins-outlook/)
-   -   MAPI question about extra info in email and smtp address (http://www.outlookbanter.com/add-ins-outlook/72749-mapi-question-about-extra-info.html)

Aamir[_2_] May 29th 08 04:56 AM

MAPI question about extra info in email and smtp address
 
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

Dmitry Streblechenko May 29th 08 05:28 AM

MAPI question about extra info in email and smtp address
 
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




Aamir[_2_] June 3rd 08 01:07 AM

MAPI question about extra info in email and smtp address
 
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;
}

Aamir[_2_] June 3rd 08 01:08 AM

MAPI question about extra info in email and smtp address
 
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.

Dmitry Streblechenko June 3rd 08 07:53 PM

MAPI question about extra info in email and smtp address
 
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;
}




Aamir[_2_] June 3rd 08 09:20 PM

MAPI question about extra info in email and smtp address
 
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

Dmitry Streblechenko June 3rd 08 11:07 PM

MAPI question about extra info in email and smtp address
 
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





All times are GMT +1. The time now is 12:31 PM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com