Thanks for your response. The deeper folder structure is not in place on the the near side, as it's being used as a migration destination - thus the mailboxes start empty with nothing but a default cPanel configuration. Following is the output of "mbsync -Dn -l my-channel" with an empty mailbox on the near side.
---------------------------------------------
$ mbsync -Dn -l my-channel
Reading configuration file /home/user/.mbsyncrc
Notice: Master/Slave are deprecated; use Far/Near instead.
Channel my-channel
Opening far side store my-remote...
Resolving mail.domain1.tld... ok
Connecting to mail.domain1.tld (1.1.1.1:993)...
Opening near side store my-local...
Resolving mail.domain2.tld... ok
Connecting to mail.domain2.tld (1.1.1.2:993)...
Connection is now encrypted
N: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE NAMESPACE LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
Logging in...
N: >>> 1 LOGIN <user> <pass>
N: 1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE NAMESPACE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE QUOTA] Logged in
N: >>> 2 COMPRESS DEFLATE
N: 2 OK Begin compression (0.001 + 0.000 secs).
N: >>> 3 NAMESPACE
N: * NAMESPACE (("INBOX." ".")) NIL NIL
N: 3 OK Namespace completed (0.001 + 0.000 secs).
N: >>> 4 LIST "" INBOX*
N: * LIST (\HasChildren) "." INBOX
N: * LIST (\HasNoChildren \Junk) "." INBOX.spam
N: * LIST (\HasNoChildren \Trash) "." INBOX.Trash
N: * LIST (\HasNoChildren \Sent) "." INBOX.Sent
N: * LIST (\HasNoChildren) "." INBOX.Junk
N: * LIST (\HasNoChildren \Drafts) "." INBOX.Drafts
N: * LIST (\HasNoChildren \Archive) "." INBOX.Archive
N: 4 OK List completed (0.002 + 0.000 + 0.001 secs).
Connection is now encrypted
F: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Logging in...
F: >>> 1 LOGIN <user> <pass>
F: 1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY LITERAL+ NOTIFY SPECIAL-USE] Logged in
F: >>> 2 NAMESPACE
F: * NAMESPACE (("" ".")) NIL NIL
F: 2 OK Namespace completed (0.001 + 0.000 secs).
F: >>> 3 LIST "" "*"
F: * LIST (\HasNoChildren \UnMarked) "." Archive
F: * LIST (\HasNoChildren \UnMarked \Sent) "." Sent
F: * LIST (\HasNoChildren \UnMarked) "." "Deleted Items"
F: * LIST (\HasNoChildren \UnMarked) "." "Junk E-mail"
F: * LIST (\HasNoChildren \Drafts) "." Drafts
F: * LIST (\HasNoChildren \UnMarked \Trash) "." Trash
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.gronk
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.Bills
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.Pet
F: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Computer Shops"
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.Rebel
F: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Aussie Broadband Bills"
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.Travel
F: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Food Orders"
F: * LIST (\HasChildren) "." INBOX
F: 3 OK List completed (0.001 + 0.000 secs).
INBOX
INBOX/Aussie Broadband Bills
INBOX/Bills
INBOX/Computer Shops
INBOX/Food Orders
INBOX/Pet
INBOX/Rebel
INBOX/Travel
INBOX/gronk
Archive
Deleted Items
Drafts
Junk
Junk E-mail
Sent
Trash
spam
N: >>> 5 LOGOUT
F: >>> 4 LOGOUT
N: * BYE Logging out
N: 5 OK Logout completed (0.001 + 0.000 secs).
F: * BYE Logging out
F: 4 OK Logout completed (0.001 + 0.000 secs).
---------------------------------------------

After completion of a sync (mbsync my-channel), the output of "mbsync -Dn -l my-channel" now looks like:
---------------------------------------------
Reading configuration file /home/user/.mbsyncrc
Notice: Master/Slave are deprecated; use Far/Near instead.
Channel my-channel
Opening far side store my-remote...
Resolving mail.domain1.tld... ok
Connecting to mail.domain1.tld (1.1.1.1:993)...
Opening near side store my-local...
Resolving mail.domain2.tld... ok
Connecting to mail.domain2.tld (1.1.1.2:993)...
Connection is now encrypted
N: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE NAMESPACE LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
Logging in...
N: >>> 1 LOGIN <user> <pass>
N: 1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE NAMESPACE LITERAL+ NOTIFY SPECIAL-USE COMPRESS=DEFLATE QUOTA] Logged in
N: >>> 2 COMPRESS DEFLATE
N: 2 OK Begin compression (0.001 + 0.000 secs).
N: >>> 3 NAMESPACE
N: * NAMESPACE (("INBOX." ".")) NIL NIL
N: 3 OK Namespace completed (0.001 + 0.000 secs).
N: >>> 4 LIST "" INBOX*
N: * LIST (\HasChildren) "." INBOX
N: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Junk E-mail"
N: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Deleted Items"
N: * LIST (\HasNoChildren \UnMarked \Archive) "." INBOX.Archive
N: * LIST (\HasNoChildren \UnMarked) "." INBOX.gronk
N: * LIST (\HasNoChildren \UnMarked) "." INBOX.Travel
N: * LIST (\HasNoChildren \UnMarked) "." INBOX.Rebel
N: * LIST (\HasNoChildren \UnMarked) "." INBOX.Pet
N: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Food Orders"
N: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Computer Shops"
N: * LIST (\HasNoChildren \UnMarked) "." INBOX.Bills
N: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Aussie Broadband Bills"
N: * LIST (\HasNoChildren \UnMarked \Junk) "." INBOX.spam
N: * LIST (\HasNoChildren \UnMarked \Trash) "." INBOX.Trash
N: * LIST (\HasNoChildren \UnMarked \Sent) "." INBOX.Sent
N: * LIST (\HasNoChildren \UnMarked) "." INBOX.Junk
N: * LIST (\HasNoChildren \UnMarked \Drafts) "." INBOX.Drafts
N: 4 OK List completed (0.008 + 0.000 + 0.007 secs).
Connection is now encrypted
F: * OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN] Dovecot (Debian) ready.
Logging in...
F: >>> 1 LOGIN <user> <pass>
F: 1 OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY LITERAL+ NOTIFY SPECIAL-USE] Logged in
F: >>> 2 NAMESPACE
F: * NAMESPACE (("" ".")) NIL NIL
F: 2 OK Namespace completed (0.001 + 0.000 secs).
F: >>> 3 LIST "" "*"
F: * LIST (\HasNoChildren \UnMarked) "." Archive
F: * LIST (\HasNoChildren \UnMarked \Sent) "." Sent
F: * LIST (\HasNoChildren \UnMarked) "." "Deleted Items"
F: * LIST (\HasNoChildren \UnMarked) "." "Junk E-mail"
F: * LIST (\HasNoChildren \Drafts) "." Drafts
F: * LIST (\HasNoChildren \UnMarked \Trash) "." Trash
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.gronk
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.Bills
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.Pet
F: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Computer Shops"
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.Rebel
F: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Aussie Broadband Bills"
F: * LIST (\HasNoChildren \UnMarked) "." INBOX.Travel
F: * LIST (\HasNoChildren \UnMarked) "." "INBOX.Food Orders"
F: * LIST (\HasChildren) "." INBOX
F: 3 OK List completed (0.002 + 0.000 + 0.001 secs).
INBOX
INBOX/Aussie Broadband Bills
INBOX/Bills
INBOX/Computer Shops
INBOX/Food Orders
INBOX/Pet
INBOX/Rebel
INBOX/Travel
INBOX/gronk
Archive
Aussie Broadband Bills
Bills
Computer Shops
Deleted Items
Drafts
Food Orders
Junk
Junk E-mail
Pet
Rebel
Sent
Trash
Travel
gronk
spam
N: >>> 5 LOGOUT
F: >>> 4 LOGOUT
N: * BYE Logging out
N: 5 OK Logout completed (0.001 + 0.000 secs).
F: * BYE Logging out
F: 4 OK Logout completed (0.001 + 0.000 secs)
---------------------------------------------

Here, it looks like things are _generally_ correct, in that subfolders of the INBOX remain subfolders, however examining the Maildirs at each end yields a different story:

---------------------------------------------
[ user@source ~ ]$ ls -ac1 Maildir
$ ls -ac1 Maildir/
dovecot.list.index.log
.Drafts
.
..
.Trash
.Sent
'.Deleted Items'
.INBOX.Travel
.INBOX.Rebel
.INBOX.Pet
'.INBOX.Food Orders'
'.INBOX.Computer Shops'
.INBOX.Bills
'.INBOX.Aussie Broadband Bills'
dovecot.list.index
dovecot.index.log
cur
new
dovecot-uidlist
dovecot.index.cache
tmp
.INBOX.gronk
dovecot.index
dovecot-uidvalidity
dovecot-uidvalidity.5b49fba7
dovecot.index.log.2
'.Junk E-mail'
dovecot-keywords
.Archive
subscriptions
dovecot.mailbox.log
---------------------------------------------
[ user@dest ~ ]$ ls -ac1 Maildir
.
dovecot.list.index
dovecot-quota
dovecot.list.index.log
.spam
.Trash
.Sent
dovecot.list.index.log.2
.Junk E-mail
dovecot-uidvalidity
dovecot-uidvalidity.629efc02
.Junk
.Drafts
.Deleted Items
.Archive
.gronk
.Travel
.Rebel
.Pet
.Food Orders
.Computer Shops
.Bills
.Aussie Broadband Bills
dovecot.index.cache
dovecot.index.log
dovecot-uidlist
cur
tmp
dovecot.index
dovecot.index.log.2
dovecot-keywords
dovecot-acl-list
dovecot.mailbox.log
subscriptions
new
..
---------------------------------------------

I don't quite see why the Maildir is not reflecting the same subfolder structure. This also breaks webmail views, as the subfolders (such as "Bills") are not initially displayed (requiring manual subscription) and when they are displayed, they are no longer subfolders of the INBOX, but top level folders.

Additionally, I was able to achieve the desired structure with either imapsync performing `IMAP -> IMAP` or offlineimap performing `IMAP -> Maildir`, although at *vastly* slower speeds (Lower than we can feasably use).

On 2022-06-07 17:17, Oswald Buddenhagen wrote:
On Mon, Jun 06, 2022 at 09:48:13PM +1000, Hayden Katz via isync-devel wrote:
I have an issue where using mbsync to sync IMAP -> IMAP between two servers (from a third server) seems to be flattening the hierarchy without being told to.

that seems somewhat unlikely. are the servers of the same type and
have the same folder configuration?

run

  mbsync -Dn -l my-channel

to see what folders actually exist as far as imap is concerned.
(or browse them interactively, e.g. with thunderbird.)


_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to