6.0.0-alpha14
6/24/25

[#11626] ActiveSync : auto detection of special folders (trash, sent, etc...) and hierarchy fails
Summary ActiveSync : auto detection of special folders (trash, sent, etc...) and hierarchy fails
Queue Synchronization
Queue Version Git master
Type Bug
State Not A Bug
Priority 1. Low
Owners mrubinsk (at) horde (dot) org
Requester ryu (at) ryux (dot) org
Created 11/02/2012 (4617 days ago)
Due
Updated 08/15/2013 (4331 days ago)
Assigned 01/10/2013 (4548 days ago)
Resolved 01/23/2013 (4535 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch No

History
08/15/2013 03:12:01 PM Thomas Jarosch Comment #42 Reply to this comment
ok, I'm seeing the problem with the special folders, too, on git HEAD.
There are two seperate problems: One is not recognizing the drafts folder,
This is a client feature. The Drafts folder is not sync-able on iOS.
I was just about to post the same after 7.5h of debugging.

I've analyzed the WBXML stream, compared to z-push and so on.
Everything looked correct, even the $folder->type is set properly. Crap.

Apple support article on this:
http://support.apple.com/kb/HT2124

08/15/2013 02:46:21 PM Michael Rubinsky Comment #41 Reply to this comment
ok, I'm seeing the problem with the special folders, too, on git HEAD.
There are two seperate problems: One is not recognizing the drafts folder,
This is a client feature. The Drafts folder is not sync-able on iOS.

[Show Quoted Text - 9 lines]
Correct. This is also a client bug/feature/limitation. I'd rather not 
start sending "dummy" folder ids to the client because then we will 
have to worry about adding logic that would handle/ignore 
synchronization requests for those folders - and have to explain to 
users why there is a trash folder on the client that doesn't match the 
contents of a trash folder on the server etc...

08/15/2013 10:28:37 AM Thomas Jarosch Comment #40 Reply to this comment
ok, I'm seeing the problem with the special folders, too, on git HEAD.
There are two seperate problems: One is not recognizing the drafts folder,
the other is message deletion handling on iOS.
(tested on iOS 6.x and iOS 4.2.1 and Windows phone 8)

My imp setup is without a trash folder, I delete messages directly.
imp shows all special mailboxes with the correct icon.

When I configure a trash folder in imp, the trash folder
is also recognized on the iOS device. Without a trash folder though
iOS is unable to delete any message (it does not even send a 
SYNC_REMOVE request)
and complains it can't move the message to the trash (=there is none).

I'll test if sending a dummy trash folder to the iOS device will satisfy it.
Unfortunately there is no way on the iOS device to configure
the DELETESASMOVES stuff. Grrr.

01/23/2013 02:40:11 PM Michael Rubinsky Comment #39
State ⇒ Not A Bug
Reply to this comment
Closing until someone can provide a reproducible test case. Otherwise, 
you will need to figure out why the unit test fails on your install, 
and not on any other.
01/11/2013 10:40:44 PM ryu (at) ryux (dot) org Comment #38 Reply to this comment
Sigh. Just noticed that the "special" drafts folder is a different, 
iOS local,  folder than my server Drafts folder.
Same for me...
01/11/2013 08:19:43 PM Michael Rubinsky Comment #37 Reply to this comment
For information, my old iPhone with ios 4.2.1 has the same problem. 
No draft folder detected although it is well passed in sync of 
folders. (in ActiveSync Horde log)
Sigh. Just noticed that the "special" drafts folder is a different, 
iOS local,  folder than my server Drafts folder.

Still, this doesn't explain why the test case passes for me but not the OP.
01/11/2013 08:09:13 PM ryu (at) ryux (dot) org Comment #36 Reply to this comment
For information, my old iPhone with ios 4.2.1 has the same problem. No 
draft folder detected although it is well passed in sync of folders. 
(in ActiveSync Horde log)

Ryu
01/11/2013 07:38:44 PM Michael Rubinsky Comment #35 Reply to this comment
What works correctly ?
Draft or draft + spams ?
Drafts. As you already mentioned, the spam folder is not a special 
folder as far as EAS is  concerned.
I just reset my device, an ipad on ios 6.0.2 and it is the same 
problem... All folders (sent and trash) are ok except drafts (and 
spams of course)...
This is on iPad running 5.x. Will test on 6.x when my wife gets home 
with her iphone.
01/11/2013 07:05:56 PM ryu (at) ryux (dot) org Comment #34 Reply to this comment
What works correctly ?
Draft or draft + spams ?

I just reset my device, an ipad on ios 6.0.2 and it is the same 
problem... All folders (sent and trash) are ok except drafts (and 
spams of course)...
Works correctly on my ios devices
01/11/2013 03:23:35 PM busywater (at) gmail (dot) com Comment #33 Reply to this comment
It is because of ios version?

Mine are running IOS 6.0.2.
Works correctly on my ios devices
01/11/2013 03:10:54 PM Michael Rubinsky Comment #32 Reply to this comment
Works correctly on my ios devices
01/11/2013 10:12:26 AM ryu (at) ryux (dot) org Comment #31 Reply to this comment
Hi,

Draft folder is not recognized in ios whereas its type is well sent.

Here is a part of my sync log :
2013-01-11T08:53:13+00:00 DEBUG: O    <FolderHierarchy:Add>
2013-01-11T08:53:13+00:00 DEBUG: O     <FolderHierarchy:ServerEntryId>
2013-01-11T08:53:13+00:00 DEBUG: O      INBOX.Drafts
2013-01-11T08:53:13+00:00 DEBUG: O     <FolderHierarchy:ServerEntryId/>
2013-01-11T08:53:13+00:00 DEBUG: O     <FolderHierarchy:ParentId>
2013-01-11T08:53:13+00:00 DEBUG: O      0
2013-01-11T08:53:13+00:00 DEBUG: O     <FolderHierarchy:ParentId/>
2013-01-11T08:53:13+00:00 DEBUG: O     <FolderHierarchy:DisplayName>
2013-01-11T08:53:13+00:00 DEBUG: O      Brouillons
2013-01-11T08:53:13+00:00 DEBUG: O     <FolderHierarchy:DisplayName/>
2013-01-11T08:53:13+00:00 DEBUG: O     <FolderHierarchy:Type>
2013-01-11T08:53:13+00:00 DEBUG: O      3
2013-01-11T08:53:13+00:00 DEBUG: O     <FolderHierarchy:Type/>
2013-01-11T08:53:13+00:00 DEBUG: O    <FolderHierarchy:Add/>

The folder type "3" *is* the type of draft folder... But even with 
this, ios does not match it.

For Templates, Spams (Junks), I think it is not in the ActiveSync 
protocol types list

See 
http://msdn.microsoft.com/en-us/library/gg650877%28v=exchg.80%29.aspx 
for full types list
and 
http://msdn.microsoft.com/en-us/library/jj572420%28v=exchg.140%29.aspx 
for an example

So for me, all is ok for Horde

Ryu.
01/11/2013 02:06:49 AM busywater (at) gmail (dot) com Comment #30 Reply to this comment
root@mail:/usr/share/php/test/Horde_Core/Horde/Core# phpunit 
./ActiveSyncTests.php
PHPUnit 3.7.10 by Sebastian Bergmann.

Configuration read from /usr/share/php/test/Horde_Core/Horde/Core/phpunit.xml

F

Time: 0 seconds, Memory: 5.25Mb

There was 1 failure:

1) Horde_Core_ActiveSyncTests::testGetFolders
Missing Draft

/usr/share/php/test/Horde_Core/Horde/Core/ActiveSyncTests.php:103

FAILURES!
Tests: 1, Assertions: 0, Failures: 1.
root@mail:/usr/share/php/test/Horde_Core/Horde/Core#
01/11/2013 12:56:05 AM Michael Rubinsky Comment #29 Reply to this comment
1) Horde_Core_ActiveSyncTests::testGetFolders
Declaration of 
Mock_Horde_Core_ActiveSync_Connector_495a72a1::calendar_import_vevent() 
should be compatible with 
Horde_Core_ActiveSync_Connector::calendar_import_vevent(Horde_Icalendar_vEvent 
$vEvent)
Sigh. If the type for the type hint is not loaded or autoloadable, it 
doesn't work when mocking. It works locally, since it's in my php 
include path. Guess I need to stub that object as well.
01/11/2013 12:32:03 AM busywater (at) gmail (dot) com Comment #28 Reply to this comment
1.  Yes, I am sure that the system has subscribed the special folder 
properly.  When connecting the IOS device through IMAP, it shows the 
special folders.

2.  The test from PHP shell
$f = new Horde_Core_ActiveSync_Imap_Factory();
var_dump($f->getMailboxes());
======================
array (size=5)
   'INBOX' =>
     array (size=5)
       'a' => int 40
       'd' => string '.' (length=1)
       'label' => string 'Inbox' (length=5)
       'level' => int 0
       'ob' =>
         object(Horde_Imap_Client_Mailbox)[231]
           protected '_utf7imap' => null
           protected '_utf8' => string 'INBOX' (length=5)
   'Draft' =>
     array (size=5)
       'a' => int 8
       'd' => string '.' (length=1)
       'label' => string 'Drafts' (length=6)
       'level' => int 0
       'ob' =>
         object(Horde_Imap_Client_Mailbox)[232]
           protected '_utf7imap' => null
           protected '_utf8' => string 'Draft' (length=5)
   'Sent' =>
     array (size=5)
       'a' => int 8
       'd' => string '.' (length=1)
       'label' => string 'Sent' (length=4)
       'level' => int 0
       'ob' =>
         object(Horde_Imap_Client_Mailbox)[233]
           protected '_utf7imap' => null
           protected '_utf8' => string 'Sent' (length=4)
   'Spam' =>
     array (size=5)
       'a' => int 8
       'd' => string '.' (length=1)
       'label' => string 'Spam' (length=4)
       'level' => int 0
       'ob' =>
         object(Horde_Imap_Client_Mailbox)[234]
           protected '_utf7imap' => null
           protected '_utf8' => string 'Spam' (length=4)
   'Trash' =>
     array (size=5)
       'a' => int 8
       'd' => string '.' (length=1)
       'label' => string 'Trash' (length=5)
       'level' => int 0
       'ob' =>
         object(Horde_Imap_Client_Mailbox)[235]
           protected '_utf7imap' => null
           protected '_utf8' => string 'Trash' (length=5)
=====================

3. The ActiveSyncTests result:
============================
root@mail:/usr/share/php/test/Horde_Core/Horde/Core# phpunit 
ActiveSyncTests.php
PHPUnit 3.7.10 by Sebastian Bergmann.

Configuration read from /usr/share/php/test/Horde_Core/Horde/Core/phpunit.xml

E

Time: 0 seconds, Memory: 4.75Mb

There was 1 error:

1) Horde_Core_ActiveSyncTests::testGetFolders
Declaration of 
Mock_Horde_Core_ActiveSync_Connector_495a72a1::calendar_import_vevent() should 
be compatible with 
Horde_Core_ActiveSync_Connector::calendar_import_vevent(Horde_Icalendar_vEvent 
$vEvent)

/usr/share/php/Horde/Test/Case.php:37
/usr/share/php/test/Horde_Core/Horde/Core/ActiveSyncTests.php:68

FAILURES!
Tests: 1, Assertions: 0, Errors: 1.
========================
01/10/2013 04:54:19 PM Michael Rubinsky Comment #27 Reply to this comment
..and for completeness, please post the results of:

$f = new Horde_Core_ActiveSync_Imap_Factory();
var_dump($f->getMailboxes());
01/10/2013 04:53:00 PM Michael Rubinsky Comment #26 Reply to this comment
pro:Core mrubinsk$ phpunit ActiveSyncTests.php
PHPUnit 3.5.10 by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 11.25Mb

OK (1 test, 12 assertions)


Are you sure you are subscribed to the "Draft" folder?
The other folders not showing as "special" do not have special status 
in ActiveSync.
01/10/2013 04:51:32 PM Git Commit Comment #25 Reply to this comment
Changes have been made in Git (master):

commit dea336a6745523a2b37fb54b419479575149181a
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date:   Thu Jan 10 11:50:09 2013 -0500

     (Passing) ActiveSync test for Bug: 11626

  framework/Core/package.xml                         |    8 +-
  framework/Core/test/Horde/Core/ActiveSyncTests.php |  131 
++++++++++++++++++++
  2 files changed, 136 insertions(+), 3 deletions(-)

http://git.horde.org/horde-git/-/commit/dea336a6745523a2b37fb54b419479575149181a
01/10/2013 02:35:06 PM busywater (at) gmail (dot) com Comment #24 Reply to this comment
From the PHP shell in the Horde administrative section, execute the 
following:

var_dump($GLOBALS['registry']->mail->getSpecialMailboxes());

and post the results.
The previous comment is from a server running PHP 5.4

This server below is running PHP 5.3 also show the same symptoms:

array(6) {
   ["composetemplates"]=>
   object(IMP_Mailbox)#194 (4) {
     ["_cache":protected]=>
     array(0) {
     }
     ["_changed":protected]=>
     int(0)
     ["_import":protected]=>
     NULL
     ["_mbox":protected]=>
     string(9) "Templates"
   }
   ["drafts"]=>
   object(IMP_Mailbox)#196 (4) {
     ["_cache":protected]=>
     array(0) {
     }
     ["_changed":protected]=>
     int(0)
     ["_import":protected]=>
     NULL
     ["_mbox":protected]=>
     string(5) "Draft"
   }
   ["sent"]=>
   array(1) {
     [0]=>
     object(IMP_Mailbox)#211 (4) {
       ["_cache":protected]=>
       array(0) {
       }
       ["_changed":protected]=>
       int(0)
       ["_import":protected]=>
       NULL
       ["_mbox":protected]=>
       string(4) "Sent"
     }
   }
   ["spam"]=>
   object(IMP_Mailbox)#201 (4) {
     ["_cache":protected]=>
     array(0) {
     }
     ["_changed":protected]=>
     int(0)
     ["_import":protected]=>
     NULL
     ["_mbox":protected]=>
     string(4) "Spam"
   }
   ["trash"]=>
   object(IMP_Mailbox)#199 (4) {
     ["_cache":protected]=>
     array(0) {
     }
     ["_changed":protected]=>
     int(0)
     ["_import":protected]=>
     NULL
     ["_mbox":protected]=>
     string(5) "Trash"
   }
   ["userhook"]=>
   array(0) {
   }
}

01/10/2013 02:30:29 PM busywater (at) gmail (dot) com Comment #23 Reply to this comment
From the PHP shell in the Horde administrative section, execute the 
following:

var_dump($GLOBALS['registry']->mail->getSpecialMailboxes());

and post the results.
array (size=6)
   'composetemplates' =>
     object(IMP_Mailbox)[187]
       protected '_cache' =>
         array (size=0)
           empty
       protected '_changed' => int 0
       protected '_import' => null
       protected '_mbox' => string 'Templates' (length=9)
   'drafts' =>
     object(IMP_Mailbox)[190]
       protected '_cache' =>
         array (size=0)
           empty
       protected '_changed' => int 0
       protected '_import' => null
       protected '_mbox' => string 'Draft' (length=5)
   'sent' =>
     array (size=1)
       0 =>
         object(IMP_Mailbox)[204]
           protected '_cache' =>
             array (size=0)
               ...
           protected '_changed' => int 0
           protected '_import' => null
           protected '_mbox' => string 'Sent' (length=4)
   'spam' =>
     object(IMP_Mailbox)[194]
       protected '_cache' =>
         array (size=0)
           empty
       protected '_changed' => int 0
       protected '_import' => null
       protected '_mbox' => string 'Spam' (length=4)
   'trash' =>
     object(IMP_Mailbox)[193]
       protected '_cache' =>
         array (size=0)
           empty
       protected '_changed' => int 0
       protected '_import' => null
       protected '_mbox' => string 'Trash' (length=5)
   'userhook' =>
     array (size=0)

01/10/2013 02:23:23 PM Michael Rubinsky State ⇒ Feedback
Priority ⇒ 1. Low
 
01/10/2013 02:23:04 PM Michael Rubinsky Comment #22 Reply to this comment
From the PHP shell in the Horde administrative section, execute the following:

var_dump($GLOBALS['registry']->mail->getSpecialMailboxes());

and post the results.
01/10/2013 02:11:29 PM busywater (at) gmail (dot) com Comment #21
New Attachment: photo.PNG Download
Reply to this comment
Although this ticket is marked resolved, I still discover that no all 
special folder is detected.

Only Inbox, Sent and Trash folder displayed correctly while Drafts and 
Spam folder is not detected correctly.

Please check the attachment.

P.S.  I have updated to the latest horde packages.

11/14/2012 07:11:11 PM Michael Rubinsky State ⇒ Resolved
 
11/07/2012 04:36:03 PM ryu (at) ryuc (dot) org Comment #20 Reply to this comment
Ok
11/07/2012 04:01:25 PM Michael Rubinsky Comment #19 Reply to this comment
The fix is in core.
11/07/2012 03:40:04 PM ryu (at) ryux (dot) org Comment #18 Reply to this comment
I thought than the 2.0.1 version of ActiveSync does not include the last fix.
For the altnamespace configuration in Cyrus, of course, it solves the 
problem, but it is not mandatory with the fix.
11/07/2012 02:54:33 PM Michael Rubinsky Comment #17
State ⇒ Feedback
Reply to this comment
Have you also updated horde and horde_core?
11/07/2012 02:50:27 PM chris (dot) flav (at) yahoo (dot) ca Comment #16 Reply to this comment
even after upgrading to ActiveSync2.0.1 I continued to have the 
deletion problem on the iPhone device.  The IMAP backend server is 
using the standard 2.3 rpm of Cyrus-imapd on CentOS6.  In order to 
correct the issue I had to turn on "altnamespace" in imapd.conf

http://cyrusimap.web.cmu.edu/docs/cyrus-imapd/2.4.7/altnamespace.php

Once that was done it was possible to choose a trash folder in the 
preferences and have the iPhone respect that without causing an 
"unable to move to folder" message
11/06/2012 05:24:02 PM ryu (at) ryux (dot) org Comment #15 Reply to this comment
Ok. I was under the (incorrect) assumption that parentid was the 
visual hierarchy, not the serverid. Good catch, thanks.
Ok, it is with pleasure!
And... even if we don't say it enough, I think you do a great job with Horde.
Keep it up.
And I continue to test and track the bugs.
thank you!

Ryu
11/06/2012 04:02:53 PM Michael Rubinsky Comment #14
State ⇒ Resolved
Reply to this comment
Ok. I was under the (incorrect) assumption that parentid was the 
visual hierarchy, not the serverid. Good catch, thanks.


11/06/2012 04:01:43 PM Git Commit Comment #13 Reply to this comment
Changes have been made in Git (master):

commit 0dd32677fce0518b56935eef3b707a37fdedbdb7
Author: horde-ryu@ryux.org <horde-ryu@ryux.org>
Date:   Tue Nov 6 11:01:11 2012 -0500

     Bug: 11626 Properly detect folder hierarchy for ActiveSync.

     Signed-off-by: Michael J Rubinsky <mrubinsk@horde.org>

  .../Core/lib/Horde/Core/ActiveSync/Driver.php      |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

http://git.horde.org/horde-git/-/commit/0dd32677fce0518b56935eef3b707a37fdedbdb7
11/06/2012 07:19:12 AM ryu (at) ryux (dot) org Comment #12
New Attachment: expectedHierarchy.png Download
Reply to this comment

[Show Quoted Text - 19 lines]
Yes, you're right. Visually, 'label' contains the good value.But, in 
ActiveSync, folder has its serverId as $sid. So, to retrieve parent's 
folder, we *must* put full parent serverid. Except that actually, the 
value is false...

Example :

Parent => Folder 1
=> serverid = 'INBOX.Folder1'
=> parentid = '0'
=> displayname = 'Level1'

*FALSE*
Child => Folder 2 (Folder1.Folder2)
=> serverid = 'INBOX.Folder1.Folder2'
=> parentid = 'Folder1'    ======> 'Folder1' does not exists as serverid!
=> displayname = 'Folder2'

*OK*
Child => Folder 2 (Folder1.Folder2)
=> serverid = 'INBOX.Folder1.Folder2'
=> parentid = 'INBOX.Folder1'
=> displayname = 'Folder2'

With this configuration, result is OK, as expected. See the screenshot...

11/06/2012 12:02:22 AM Michael Rubinsky Comment #11
State ⇒ Feedback
Reply to this comment

[Show Quoted Text - 21 lines]
But these folders shouldn't visually be subfolders of INBOX.
11/05/2012 07:48:56 PM ryu (at) ryux (dot) org Comment #10 Reply to this comment
So, in your case $f['label'] doesn't contain the full name with the 
delimiters? What *does* it contain?
It contains : Level1.Level6 instead of INBOX.Level1.Level6. $sid 
contains the full name.

2012-11-03T09:10:25+00:00 DEBUG: --- HORDEDEBUG --- f = Array
(
     [a] => 8
     [d] => .
     [label] => Level1.Level6
     [level] => 1
     [ob] => Horde_Imap_Client_Mailbox Object
         (
             [_utf7imap:protected] =>
             [_utf8:protected] => INBOX.Level1.Level6
         )

)
11/05/2012 07:20:12 PM Git Commit Comment #9 Reply to this comment
Changes have been made in Git (master):

commit 1e611041f2b996139d1b1c161d67db2f564736e9
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date:   Mon Nov 5 13:29:12 2012 -0500

     split -> explode

     Fixes part of Bug: 11626.

     split() is a regexp based split (and is depreceatd anyway) while
     explode() is string based and is what was intended here.

  .../Core/lib/Horde/Core/ActiveSync/Driver.php      |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

http://git.horde.org/horde-git/-/commit/1e611041f2b996139d1b1c161d67db2f564736e9
11/05/2012 07:20:08 PM Git Commit Comment #8 Reply to this comment
Changes have been made in Git (master):

commit 7219d78904b50fbb546b6dd96ba27bf888f22dea
Author: horde-ryu@ryux.org <horde-ryu@ryux.org>
Date:   Mon Nov 5 13:22:45 2012 -0500

     Bug: 11626  Need the full mailbox name, not just the basename for 
special mboxes.

     Fixes detecting special mailboxes on servers where they are part of the
     INBOX namespace.
     Signed-off-by: Michael J Rubinsky <mrubinsk@horde.org>

  .../Core/lib/Horde/Core/ActiveSync/Driver.php      |    6 +++---
  1 files changed, 3 insertions(+), 3 deletions(-)

http://git.horde.org/horde-git/-/commit/7219d78904b50fbb546b6dd96ba27bf888f22dea
11/05/2012 07:16:35 PM Michael Rubinsky Comment #7 Reply to this comment
Ok, finally, I found a cleaner fix for the hierarchy problem.

Juste replace line 1827 by :

$parts = explode($f['d'], $sid);
So, in your case $f['label'] doesn't contain the full name with the 
delimiters? What *does* it contain?

[Show Quoted Text - 50 lines]
11/03/2012 11:23:28 AM ryu (at) ryux (dot) org Comment #6 Reply to this comment
Ok, finally, I found a cleaner fix for the hierarchy problem.

Juste replace line 1827 by :

$parts = explode($f['d'], $sid);

and forget the block

if (!empty($fl["INBOX." . implode($f['d'], $parts)])) {
     $folder->parentid = "INBOX." . implode($f['d'], $parts);
     $folder->displayname = $displayname;
}

Ryu

[Show Quoted Text - 39 lines]
11/03/2012 10:19:59 AM ryu (at) ryux (dot) org Comment #5 Reply to this comment
Ouch ! I forgot a change...

I replaced the "split" function, line 1827 (which seems to return an 
empty array) by "explode". Futhermore, split is deprecated since php 
5.3.0

Ryu

[Show Quoted Text - 30 lines]
11/03/2012 10:12:04 AM ryu (at) ryux (dot) org Comment #4 Reply to this comment
Ok, I think I have the solution...

For the first problem => bad type for special folders

in Horde Framework / Core/ActiveSync/Driver.php, ~ line 1862 : replace 
mailbox property from "basename" to "value" for each special folders.

INBOX prefix was missing with basename...

With this fix, types are ok in ActiveSync

============================================

Next, for the hierarchy problem.
Always the same file (Core/ActiveSync/Driver.php), just above, ~ line 1829

Add INBOX prefix

if (!empty($fl["INBOX." . implode($f['d'], $parts)])) {
     $folder->parentid = "INBOX." . implode($f['d'], $parts);
     $folder->displayname = $displayname;
}

============================================

I don't know if it is the good fix... Maybe there is a cleaner 
solution ! But this works...

Ryu
11/02/2012 04:34:34 PM Michael Rubinsky Assigned to Michael Rubinsky
State ⇒ Assigned
 
11/02/2012 02:40:49 PM ryu (at) ryux (dot) org Comment #3
New Attachment: MicrosoftExchangeServer.png Download
Reply to this comment
Add Microsoft Echange Server account view
11/02/2012 02:39:53 PM ryu (at) ryux (dot) org Comment #2
New Attachment: HordeFolders.png Download
Reply to this comment
Add Horde account view
11/02/2012 02:38:55 PM ryu (at) ryux (dot) org Comment #1
State ⇒ Unconfirmed
Priority ⇒ 2. Medium
Type ⇒ Bug
Summary ⇒ ActiveSync : auto detection of special folders (trash, sent, etc...) and hierarchy fails
Queue ⇒ Synchronization
Milestone ⇒
Patch ⇒ No
New Attachment: FolderSync.txt Download
Reply to this comment
Hi,

It seems there's a bug on FOLDERSYNC command. The folders list does 
not contain good hierarchy and types.

With ios, special folders like "trash" and "sent" are nor flagged as 
"Trash" and "Sent". So it results it is not possible to delete a 
message. iPhone shows a popup "The message cannot be moved to the 
Trash mailbox"

Futhermore, the hierarchy is not detected. If a folder "Level1" 
contains another folder "Level2", ios does not detect the hierarchy 
and display the two folders in the same level.

With a "true" Exchange Server, there is no problem.

Saved Queries