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

Reply via email to