Imapsync 94 NO Permission denied

Hallo zusammen,
wie haben ein seltsames Problem mit imapsync, das wir uns nicht so recht erklären können. Wir möchten gerne alle IMAP-Ordner von 1und1 zum UCS cyrus syncen.
Mit diesem Befehl versuchen wir das:

imapsync $1 --host1 $host1 --user1 "$u1" --password1 "$p1" --host2 $host2 --user2 "$u2" --password2 "$p2" --subscribe --subscribed --delete2 --noauthmd5 --prefix2 INBOX/alter_server/

nach einem

host1: state Authenticated host2: state Authenticated

geht’s dann auch schon los, 1und1 liefert alle Ordner und die Anzahl der
Mails in jedem Ordner.

Dann soll es ans kopieren gehen, aber ich erhalte bei jeden neu zu
erstellenden Ordner auf dem UCS nur so was hier in der Art:

Host1 Folder [Spam] Host2 Folder [INBOX/alter_server/Spam] Host2 folder INBOX/alter_server/Spam does not exist Creating folder [INBOX/alter_server/Spam] Couldn't create [INBOX/alter_server/Spam]: 94 NO Permission denied

Wenn ich den Prefix2 weglasse, ändert sich das auch nicht wirklich.
Der entsprechende user2 kann aber über den OX schon wunderbar den cyrus
bedienen, also auch überall nach Belieben Ordner anlegen etc…
Was ist denn jetzt da los?

Würde mich über ne kurze Erleuchtung wirklich sehr freuen…

Danke
Sascha

Hallo Sascha,

Ich würde darauf tippen, daß die Separator Zeichen nicht übereinstimmen. Zur Erklärung: ein IMAP Server hat ein internes Format, wie er Ordnernamen darstellt. Das ist meist UTF-7. Dann hat er auch ein internes Trennzeichen für Pfadelemente. Bei mir (dovecot) ist das Trennzeichen nicht der Slash (’/’) sondern der Punkt (’.’).

Das schwierige für einen IMAP Client (so wie imapsync) ist es, daß er alle Pfade in diesem internen Format nennen muß. Ox “weiß” beispielsweise, welche Zeichencodierung und welches Trennzeichen cyrus verwendet, deshalb funktioniert das Ansprechen von Ordnernamen in der Ox-Oberfläche. Bei mir gab es mit Trennzeichen keinerlei Probleme, aber wahrscheinlich nur, weil bei mir der Quell- und Zielserver der gleiche ist, so daß imapsync die Ordnernamen einfach unverändert weitergeben kann, auch wenn es Codierung und Trennzeichen nicht kennt.

Ich würde versuchen, die Trennzeichen herauszufinden, indem ich einen “Trockenlauf” mache und anschaue was passiert. Die “dummy” Variablen (host, user, pass) sind nur dafür da, daß imapsync einen zweiten Host hat, an den es sich anmelden kann; durch den Schalter--drywird nichts wirklich kopiert.

Also etwa so:

imapsync --host1 einsundeinshost --user1 einsundeinsuser --password1 einsundeinspassword --dry --debugimap --justfolders --host2 dummyhost --user2 dummyuser --password2 dummypassword 2>&1 | grep -i 'lsub'

imapsync --host1 oxhost --user1 oxuser --password1 oxpassword --dry --debugimap --justfolders --host2 dummyhost --user2 dummyuser --password2 dummypassword 2>&1 | grep -i 'lsub'

Diese Befehlszeilen listen nur die Imap-Ordner in dem jeweiligen Konto. Daran sieht man dann, welches Trennzeichen verwendet wird. Die müßte man dann entsprechend mit den Schaltern --sep1 und --sep2 an den Kopierbefehl anfügen.

Wenn es das nicht ist, müßte man noch weiter schauen, vielleicht mal Logging hochsetzen und vergleichen, was Ox mit dem Cyrus redet.

viele Grüße
Frank Greif.

Mastodon