Hi,
we are using "openchange" to extract the contact information
from an exchange server with the following command:
bin/openchangeclient --pf --fetch-items=Contact --folder "Our Contacts"
Unfortunately, the email address is not extracted. I tracked it down to
the function mapidump_contact in libmapi/mapidump.c, and tried to
extract the e-mail address using a number of different identifiers (see
the patch below). But "email" was never assigned and remained NULL.
Does anyone know how the e-mail information can be extracting from a
folder containing "contact items" (i.e. Adressbook) ? Or do you have any
hints were to look for this information ?
Kind regards,
Alois
===================================================================
--- libmapi/mapidump.c (revision 2748)
+++ libmapi/mapidump.c (working copy)
@@ -571,6 +573,26 @@
surname = (const char *)find_mapi_SPropValue_data(properties,
PR_SURNAME);
department = (const char *)find_mapi_SPropValue_data(properties,
PR_DEPARTMENT_NAME);
email = (const char *)find_mapi_SPropValue_data(properties,
PidLidEmail1OriginalDisplayName);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PidLidEmail1EmailAddress);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PidTagEmailAddress);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PidTagEmailAddress_string8);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PidLidEmail2EmailAddress);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PidLidEmail3EmailAddress);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PidLidEmail1DisplayName);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PidLidEmail1OriginalDisplayName);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PR_EMAIL_ADDRESS);
+ if (!email)
+ email = (const char
*)find_mapi_SPropValue_data(properties, PR_EMAIL_ADDRESS_UNICODE);
+
+
office_phone = (const char *)find_mapi_SPropValue_data(properties,
PR_OFFICE_TELEPHONE_NUMBER);
home_phone = (const char *)find_mapi_SPropValue_data(properties,
PR_HOME_TELEPHONE_NUMBER);
mobile_phone = (const char *)find_mapi_SPropValue_data(properties,
PR_MOBILE_TELEPHONE_NUMBER);
@@ -582,6 +604,7 @@
state = (const char*)find_mapi_SPropValue_data(properties,
PR_STATE_OR_PROVINCE);
country = (const char*)find_mapi_SPropValue_data(properties,
PR_COUNTRY);
+
if (card_name)
printf("|== %s ==| %s\n", card_name, id?id:"");
else if (topic)
_______________________________________________
devel mailing list
[email protected]
http://mailman.openchange.org/listinfo/devel