Bonjour,
Je suis en train de tester BlueMind en tant que possible remplacement de notre messagerie actuelle (Cyrus IMAP + RoundCube).
Je rencontre un problème lors de mes tests de méthodes de migrations avec l’outil imapsync (version 1.607).
Sur le serveur source, je m’authentifie en tant que l’utilisateur cyrus qui est l’admin.
Sur le serveur destination (BlueMind), je m’authentifie en tant que l’utilisateur admin0.
cela donne une commande du type:
$IMAPSYNC --justfolders --tls1 --authmech1 PLAIN --host1 $SERVER1 --authuser1 $AUTHUSER1 --user1 "$u1" --password1 "$p1" --tls2 --authmech2 PLAIN --host2 $SERVER2 --authuser2 $AUTHUSER2 --user2 "$u2" --password2 "$p2"
le serveur source ($SERVER1) n’utilise pas le virtual hosting. Le nom d’utilisateur est donc un simple identifiant ($u1)
Sur le serveur BlueMind ($SERVER2), $authuser2 vaut ‘admin0’, $u2 vaut le même nom d’utilisateur que $u1 mais qualifié avec le nom de domaine complet.
Tous les utilisateurs existent déjà sur le serveur BlueMind et sont synchronisés via LDAP.
Le problème est qu’avec ces paramètres, BlueMind essaie de créer les dossiers destination au mauvais endroit. Ci-dessous un extrait du log:
/root/scripts/migration_univ-lr.fr/imapsync/imapsync --justfolders --tls1 --authmech1 PLAIN --host1 mail.univ-lr.fr --authuser1 cyrus --user1 arodrigu --password1 MASKED --tls2 --authmech2 PLAIN --host2 bm3.univ-lr.fr --authuser2 admin0 --user2 arodrigu@univ-lr.fr --password2 MASKED
Temp directory is /tmp
PID file is /tmp/imapsync.pid
Modules version list:
Mail::IMAPClient 3.35
IO::Socket 1.31
IO::Socket::IP 0.33
IO::Socket::INET 1.31
IO::Socket::SSL 1.31
Net::SSLeay 1.35
Digest::MD5 2.53
Digest::HMAC_MD5 1.01
Digest::HMAC_SHA1 1.03
Term::ReadKey 2.32
Authen::NTLM 1.09
File::Spec 3.3
Time::HiRes 1.9726
URI::Escape 3.31
Data::Uniqid 0.12
Unicode::String 2.09
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Info: will try to use PLAIN authentication on host1
Info: will try to use PLAIN authentication on host2
Info: imap connexions timeout is 120 seconds
Host1: IMAP server [mail.univ-lr.fr] port [143] user [arodrigu]
Host2: IMAP server [bm3.univ-lr.fr] port [143] user [arodrigu@univ-lr.fr]
Host1: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE STARTTLS LOGINDISABLED] mail.univ-lr.fr server ready
Host1: mail.univ-lr.fr says it has CAPABILITY for AUTHENTICATE PLAIN
Host1: success login on [mail.univ-lr.fr] with user [arodrigu] auth [PLAIN]
Host2: * OK IMAP4 ready
Host2: bm3.univ-lr.fr says it has CAPABILITY for AUTHENTICATE PLAIN
Host2: success login on [bm3.univ-lr.fr] with user [arodrigu@univ-lr.fr] auth [PLAIN]
Host1: state Authenticated
Host2: state Authenticated
Host1 capability: IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SORT SORT=MODSEQ SORT=DISPLAY THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE IDLE
Host2 capability: IMAP4rev1 ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SORT SORT=MODSEQ SORT=DISPLAY THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY AUTH=PLAIN SASL-IR IDLE STARTTLS
Host1: separator given by NAMESPACE: .]
Host2: separator given by NAMESPACE: /]
Host1: prefix given by NAMESPACE: ]
Host2: prefix given by NAMESPACE: [user/]
Host1 separator and prefix: .]]
Host2 separator and prefix: /][user/]
La liste des dossiers IMAP sources est correcte.
En revanche, comme admin0 a accès à tout, il m’affiche la liste complète des dossiers IMAP du serveur BlueMind
Ensuite chaque création de dossier destination échoue car le namespace n’est pas bon. Exemple:
++++ Looping on each folder
...
[Compteurs imprimantes] -> [user/Compteurs imprimantes]
Host2 folder user/Compteurs imprimantes: Could not select: 77 NO Permission denied
Creating folder [user/Compteurs imprimantes] on host2
Creating folder [user] on host2
Could not create folder [user] from [Compteurs imprimantes]: 79 NO Invalid mailbox name
Could not create folder [user/Compteurs imprimantes] from [Compteurs imprimantes]: 81 NO Mailbox already exists
Lorsque je n’utilise pas le compte admin0 et que je m’authentifie en tant que le user destination sur le serveur BlueMind, pas de soucis:
/root/scripts/migration_univ-lr.fr/imapsync/imapsync --justfolders --tls1 --authmech1 PLAIN --host1 mail.univ-lr.fr --user1 arodrigu --password1 MASKED --tls2 --authmech2 PLAIN --host2 bm3.univ-lr.fr --user2 arodrigu@univ-lr.fr --password2 MASKED
Temp directory is /tmp
PID file is /tmp/imapsync.pid
Modules version list:
Mail::IMAPClient 3.35
IO::Socket 1.31
IO::Socket::IP 0.33
IO::Socket::INET 1.31
IO::Socket::SSL 1.31
Net::SSLeay 1.35
Digest::MD5 2.53
Digest::HMAC_MD5 1.01
Digest::HMAC_SHA1 1.03
Term::ReadKey 2.32
Authen::NTLM 1.09
File::Spec 3.3
Time::HiRes 1.9726
URI::Escape 3.31
Data::Uniqid 0.12
Unicode::String 2.09
Info: turned ON syncinternaldates, will set the internal dates (arrival dates) on host2 same as host1.
Info: will try to use PLAIN authentication on host1
Info: will try to use PLAIN authentication on host2
Info: imap connexions timeout is 120 seconds
Host1: IMAP server [mail.univ-lr.fr] port [143] user [arodrigu]
Host2: IMAP server [bm3.univ-lr.fr] port [143] user [arodrigu@univ-lr.fr]
Host1: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE STARTTLS LOGINDISABLED] mail.univ-lr.fr server ready
Host1: mail.univ-lr.fr says it has CAPABILITY for AUTHENTICATE PLAIN
Host1: success login on [mail.univ-lr.fr] with user [arodrigu] auth [PLAIN]
Host2: * OK IMAP4 ready
Host2: bm3.univ-lr.fr says it has CAPABILITY for AUTHENTICATE PLAIN
Host2: success login on [bm3.univ-lr.fr] with user [arodrigu@univ-lr.fr] auth [PLAIN]
Host1: state Authenticated
Host2: state Authenticated
Host1 capability: IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SORT SORT=MODSEQ SORT=DISPLAY THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE IDLE
Host2 capability: IMAP4rev1 ID ENABLE ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SORT SORT=MODSEQ SORT=DISPLAY THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE LIST-EXTENDED WITHIN QRESYNC SCAN XLIST URLAUTH URLAUTH=BINARY AUTH=PLAIN SASL-IR IDLE STARTTLS
Host1: separator given by NAMESPACE: .]
Host2: separator given by NAMESPACE: /]
Host1: prefix given by NAMESPACE: ]
Host2: prefix given by NAMESPACE: ]
Host1 separator and prefix: .]]
Host2 separator and prefix: /]]
...
++++ Looping on each folder
...
[Compteurs imprimantes] -> [Compteurs imprimantes]
Creating folder [Compteurs imprimantes] on host2
Created folder [Compteurs imprimantes] on host2
Subscribing to folder Compteurs imprimantes on destination server
J’ai essayé de forcer le prefix avec la valeur ‘user/$username/’ mais sans succès. La boite n’est jamais créée au bon endroit.
J’ai trouvé une alternative en générant une clé d’API spécifique ‘imapsync’ pour chaque utilisateur et en l’utilisant pour m’authentifier en tant que l’utilisateur destination sur le serveur BlueMind, mais bof …
Si vous avez une idée ?
Merci
Alban