Commit e62f4478 authored by Sebastian Kummer's avatar Sebastian Kummer

Merge pull request #91 in ZP/z-push from...

Merge pull request #91 in ZP/z-push from feature/ZP-736-listfolders.php-should-also-list-sent to develop

* commit 'da987d93':
  ZP-736 listfolders.php should also list "Sent items" and "Inbox".
  ZP-736 listfolders.php should also list "Sent items" and "Inbox".
  ZP-736 listfolders.php should also list "Sent items" and "Inbox".
parents d1dfee9c da987d93
...@@ -176,12 +176,38 @@ function listfolders_getlist ($adminStore, $session, $user) { ...@@ -176,12 +176,38 @@ function listfolders_getlist ($adminStore, $session, $user) {
exit (1); exit (1);
} }
$folder = @mapi_msgstore_openentry($userStore); if (strtoupper($user) != 'SYSTEM') {
$h_table = @mapi_folder_gethierarchytable($folder, CONVENIENT_DEPTH); $inbox = mapi_msgstore_getreceivefolder($userStore);
$subfolders = @mapi_table_queryallrows($h_table, array(PR_ENTRYID, PR_DISPLAY_NAME, PR_CONTAINER_CLASS, PR_SOURCE_KEY)); if(mapi_last_hresult() != NOERROR) {
printf("Could not open inbox for %s (0x%08X). The script will exit.\n", $user, mapi_last_hresult());
exit (1);
}
$inboxProps = mapi_getprops($inbox, array(PR_SOURCE_KEY));
}
$storeProps = mapi_getprops($userStore, array(PR_IPM_OUTBOX_ENTRYID, PR_IPM_SENTMAIL_ENTRYID, PR_IPM_WASTEBASKET_ENTRYID));
$root = @mapi_msgstore_openentry($userStore, null);
$h_table = @mapi_folder_gethierarchytable($root, CONVENIENT_DEPTH);
$subfolders = @mapi_table_queryallrows($h_table, array(PR_ENTRYID, PR_DISPLAY_NAME, PR_CONTAINER_CLASS, PR_SOURCE_KEY, PR_PARENT_SOURCE_KEY, PR_FOLDER_TYPE, PR_ATTR_HIDDEN));
echo "Available folders in store '$user':\n" . str_repeat("-", 50) . "\n"; echo "Available folders in store '$user':\n" . str_repeat("-", 50) . "\n";
foreach($subfolders as $folder) { foreach($subfolders as $folder) {
// do not display hidden and search folders
if ((isset($folder[PR_ATTR_HIDDEN]) && $folder[PR_ATTR_HIDDEN]) ||
(isset($folder[PR_FOLDER_TYPE]) && $folder[PR_FOLDER_TYPE] == FOLDER_SEARCH)) {
continue;
}
// handle some special folders
if ((strtoupper($user) != 'SYSTEM') &&
((isset($inboxProps[PR_SOURCE_KEY]) && $folder[PR_SOURCE_KEY] == $inboxProps[PR_SOURCE_KEY]) ||
$folder[PR_ENTRYID] == $storeProps[PR_IPM_SENTMAIL_ENTRYID] ||
$folder[PR_ENTRYID] == $storeProps[PR_IPM_WASTEBASKET_ENTRYID])) {
$folder[PR_CONTAINER_CLASS] = "IPF.Note";
}
if (isset($folder[PR_CONTAINER_CLASS]) && array_key_exists($folder[PR_CONTAINER_CLASS], $supported_classes)) { if (isset($folder[PR_CONTAINER_CLASS]) && array_key_exists($folder[PR_CONTAINER_CLASS], $supported_classes)) {
echo "Folder name:\t". $folder[PR_DISPLAY_NAME] . "\n"; echo "Folder name:\t". $folder[PR_DISPLAY_NAME] . "\n";
echo "Folder ID:\t". bin2hex($folder[PR_SOURCE_KEY]) . "\n"; echo "Folder ID:\t". bin2hex($folder[PR_SOURCE_KEY]) . "\n";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment