En plus des fonctionnalités tant attendues telles que le carnet d'adresses hiérarchique et la prise en charge officielle d'Ubuntu 18.10 LTS, la
sortie de Zimbra 8.8.12 nous a apporté des informations sur la suppression prochaine de la prise en charge d'un certain nombre d'utilitaires nécessaires à la migration d'autres systèmes de messagerie vers la Zimbra Collaboration Suite. En particulier, la prise en charge de l'assistant de migration ZCS pour Domino a été complètement interrompue et l'assistant de migration ZCS pour Exchange ne prend désormais en charge que l'importation de fichiers PST à partir d'Outlook. Pour mettre en œuvre une migration à part entière, les développeurs de Zimbra Collaboration Suite proposent d'utiliser des services en ligne payants, mais toutes les entreprises ne sont pas prêtes à fournir leurs données de boîte aux lettres à des tiers pour des raisons de sécurité, et toutes les entreprises ne peuvent pas se permettre les coûts supplémentaires associés à la migration vers Zimbra. Surtout pour ces utilisateurs, il existe un programme imapsync, qui est capable de fournir une migration incrémentielle fiable de n'importe quel système de messagerie vers Zimbra.

Imapsync est un utilitaire gratuit et gratuit disponible dans les référentiels de toute distribution Zimbra Linux officiellement prise en charge. Le but de ce programme est de transférer des e-mails entre différents serveurs de messagerie et il s'y adapte parfaitement. Grâce à la flexibilité des paramètres, le courrier peut être transféré de manière incrémentielle et en mode entièrement automatique. Voyons comment vous pouvez utiliser imapsync pour migrer de Lotus Domino et MS Exchange vers Zimbra Collaboration Suite.
Migration de MS Exchange vers Zimbra
Pour que la migration des e-mails réussisse, vous devez effectuer une série de préparatifs. Tout d'abord, nous devons créer les mêmes utilisateurs sur le serveur Zimbra que sur le serveur MS Exchange avec les mêmes mots de passe. Dans l'exécution de cette tâche, le réglage automatique des utilisateurs de Zimbra avec AD peut être très utile. Le processus d'un tel réglage automatique est
décrit dans l'un de nos articles précédents.
Une fois tous les comptes AD ou Exchange migrés, vous devez installer le package imapsync sur le serveur avec Zimbra. Si vous utilisez Ubuntu comme système d'exploitation pour Zimbra, vous pouvez installer le programme à l'aide de la commande
sudo apt-get install imapsync -y , dans CentOS et RHEL, l'installation sera effectuée à l'aide de la commande
sudo yum install imapsync -y .
Une fois l'installation du package et de toutes les dépendances terminée, passons à la configuration du serveur Exchange. À ce sujet, nous devrons activer le service IMAP4. Cela se fait en exécutant le fichier
services.msc , après quoi vous devez aller dans Outils> Services -> IMAP4 Microsoft Exchange -> Démarrer. Après cela, vous devrez donner à l'administrateur un accès aux boîtes aux lettres des utilisateurs afin d'éviter d'utiliser des mots de passe utilisateur pendant la migration, et également désactiver ou configurer des stratégies de limitation de vitesse afin qu'elles n'interfèrent pas avec la migration. Vous pouvez maintenant commencer à transférer le courrier d'un serveur à un autre.
Dans notre infrastructure, MS Exchange sera situé sur l'hôte
exchange.company.ru et Zimbra sera situé sur l'hôte
zimbra.company.ru . Les utilisateurs seront transférés un par un à l'aide de la ligne de commande, dans laquelle nous exécuterons l'utilitaire imapsync avec un certain nombre de paramètres nécessaires à la migration. Tout d'abord, il convient de noter que dans Zimbra, comme dans MS Exchange, les comptes d'administrateur ont accès au contenu de toutes les boîtes aux lettres d'utilisateur, ce qui signifie que pour migrer vers un nouveau serveur de messagerie, l'administrateur système n'a pas besoin de connaître les mots de passe des comptes d'utilisateur ordinaires. C'est pourquoi la migration de chaque utilisateur de MS Exchange vers Zimbra se fera à l'aide d'une commande de la forme suivante:
imapsync --host1 exchange.company.ru --user1 "xxxxx" --authuser1 "yyyyy" --password1 "zzzzz" --nosslcheck --host2 zimbra.company.ru --user2 "XXXXX" --authuser1 "YYYYY" --password2 "ZZZZZ"
Dans cette commande, nous
spécifions l' hôte source (
--host1 ) à partir duquel imapsync récupérera les données de compte, ainsi que l'hôte (
--host2 ) dans lequel ces données seront enregistrées. Nous
spécifions également le nom d'utilisateur (
--user1 ) sur le premier hôte et le nom d'utilisateur correspondant (
--user2 ) sur le deuxième hôte. Afin d'accéder à ses données, nous spécifions le nom du compte administrateur (
--authuser1 ) et le mot de passe administrateur (
--password1 ) du premier hôte, et afin d'enregistrer les données transmises, le nom du compte administrateur (
--authuser2 ) et le mot de passe administrateur (
--password2 ) du deuxième hôte.
Dans un monde idéal, une telle commande serait suffisante pour transférer des données utilisateur entre des serveurs avec MS Exchange et Zimbra, mais, comme cela arrive souvent, les différences entre les solutions apportent leurs propres corrections et donc un simple transfert de données depuis MS Exchange conduira à un chaos terrible dans les boîtes aux lettres Zimbra . La pierre d'achoppement dans ce cas est les différents noms des dossiers dans les boîtes aux lettres. Afin d'éviter toute confusion lors du transfert de données, il est nécessaire d'amener notre équipe à environ la forme suivante:
imapsync --subscribe_all --maxmessagespersecond 4 --addheader --f1f2 "Inbox=INBOX" \ --f1f2 "Sent Items=Sent" --f1f2 "Sent items=Sent" --exclude "^Journal|^Tasks|^Trash|Contacts|Calendar|RSS Feeds" \ --useheader "Message-ID" --buffersize 8192000 --nosyncacls --allowsizemismatch --usecache --syncinternaldates --skipsize --nofoldersizes \ --tls1 --port1 143 --user1 "xxxxxxxxxx" --authuser1 "besadmin" --password1 "XXXXXXX" \ --host2 'xxxxxxx' --user2 "xxxxxx" --authuser2 "XXXXXX" --password2 "XXXX" --tls2 --port2 7143 \ --regextrans2 "s/Inbox1/INBOX/i" --regextrans2 "s/Sent Items/Sent/i" --regextrans2 "s/sent-mail/Sent/i" --regextrans2 "s/Deleted Items/Trash/i" --regextrans2 "s/Deleted Messages/Trash/" \ --delete2duplicates --timeout 600 --pidfile "impasync.local.pid" --logfile "imapsync.log" --sep1 "/" --errorsmax "100"
Notez que ce n'est pas un script universel qui fonctionnera parfaitement dans n'importe quelle infrastructure. Beaucoup de choses peuvent dépendre de diverses fonctionnalités de votre infrastructure. C'est pourquoi, avant de lancer une migration à grande échelle, assurez-vous de tester le transfert de données entre les systèmes sur un certain nombre de comptes d'entreprise non critiques.
Laissez l'abondance des paramètres avec lesquels imapsync est lancée ne vous effrayera pas. la plupart d'entre eux sont nécessaires précisément afin que lors du transfert de dossiers depuis la boîte aux lettres, il n'y ait pas de confusion et que tous les éléments de MS Exchange soient transférés vers Zimbra. Par exemple, le paramètre
--subscribe_all permet à imapsync d'obtenir tous les dossiers de votre compte afin que vous puissiez les
utiliser ultérieurement. L'
option --f1f2 vous permet de modifier le nom du dossier pendant la synchronisation. C'est-à-dire lors de la synchronisation, par exemple. le dossier Éléments envoyés change son nom en Envoyé, ce qui vous permet d'adapter parfaitement son contenu à la structure de dossiers de Zimbra Collaboration Suite. Le paramètre
--regextrans2 vous permet également de changer les noms de dossier et est basé sur le mécanisme regex du langage de programmation Perl, de sorte que ceux qui connaissent ce langage apprendront facilement ce paramètre.
Afin d'expliquer ce que
font les options --addheader et
--useheader , il sera nécessaire d'explorer exactement comment se déroule la synchronisation des lettres dans imapsync. Le fait est que pour synchroniser imapsync, il est nécessaire d'identifier les lettres sur les deux serveurs afin de décider de les synchroniser ou non. Pour les vérifier, cet utilitaire utilise des paramètres tels que «Message-Id:» et «Received:» (numéro d'identification et heure de réception), qui sont absents dans ces e-mails, tels que les brouillons. Pour les synchroniser normalement, nous avons besoin de la commande --addheader. Il vous permet de leur ajouter un numéro d'identification afin d'identifier et de comparer ces lettres pendant la synchronisation. Le paramètre --useheader vous permet de comparer des lettres en utilisant un seul des deux paramètres pendant la synchronisation.
Après avoir écrit le script parfait qui nous permettra de transférer le transfert parfait de comptes de MS Exchange à Zimbra, un problème important demeure, qui est lié au fait que nous devons encore transférer les utilisateurs entre les serveurs un par un. Ce n'est pas très optimal, surtout dans les entreprises où il y a beaucoup d'employés et où le nombre de boîtes aux lettres est mesuré par milliers. Cependant, ce processus peut être considérablement optimisé en créant une liste de comptes, puis en écrivant un petit script qui transfère automatiquement le courrier en fonction des noms de compte. Pour ce faire, nous allons créer le fichier
imap_users et y ajouter toutes les données nécessaires sous la forme suivante:
domains=( domain1\ domain2) users=( user1@domain1\ user2@domain1\ user3@domain1\ user1@domain2\ user2@domain2\ user3@domain2)
Après cela, nous écrirons le script lui-même. Nous avons quelque chose comme ça:
. imap_users src_srv = exchange.company.ru dest_srv = zimbra.company.ru for ((i = 0; i < ${#users[@]}; i++ )) do /usr/bin/imapsync --subscribe_all --maxmessagespersecond 4 --addheader --f1f2 "Inbox=INBOX" \ --f1f2 "Sent Items=Sent" --f1f2 "Sent items=Sent" --exclude "^Journal|^Tasks|^Trash|Contacts|Calendar|RSS Feeds" \ --useheader "Message-ID" --buffersize 8192000 --nosyncacls --allowsizemismatch --usecache --syncinternaldates --skipsize --nofoldersizes \ --tls1 --port1 143 --host1 $src_srv --user1 ${users[$i]} --authuser1 "besadmin" --password1 "XXXXXXX" --nosslcheck \ --host2 $dest_srv --user2 ${users[$i]} --authuser2 "XXXXXX" --password2 "XXXX" --tls2 --port2 7143 \ --regextrans2 "s/Inbox1/INBOX/i" --regextrans2 "s/Sent Items/Sent/i" --regextrans2 "s/sent-mail/Sent/i" --regextrans2 "s/Deleted Items/Trash/i" --regextrans2 "s/Deleted Messages/Trash/" \ --delete2duplicates --timeout 600 --pidfile "impasync.local.pid" --logfile "imapsync.log" --sep1 "/" --errorsmax "100" done
Étant donné que le transfert de données est incrémentiel, vous pouvez d'abord transférer la majeure partie des données entre les serveurs, puis, dans un court délai technique, transférer la petite quantité de données qui s'est accumulée depuis la dernière synchronisation, transférer tout le courrier entrant vers Zimbra et en faire le système de messagerie principal. Nous vous rappelons qu'avant de migrer vers le nouveau système de messagerie, vous devez informer les employés de la transition à venir, organiser une formation avec eux et également préparer des mémos sur l'emplacement à Zimbra de leurs fonctions habituelles. Grâce à cela, la migration se déroulera plus facilement et ne créera pas de problèmes pour l'entreprise.
Migration de Lotus / Domino vers Zimbra
À bien des égards, le processus de migration à partir du système de messagerie IBM utilisant imapsync répète le processus de migration à partir de MS Exchange et de tout autre système de messagerie. Cependant, dans le processus de migration directe, de nombreux administrateurs rencontrent une erreur avec la déconnexion via IMAP et, par conséquent, l'arrêt de la synchronisation. En même temps, aucun message d'erreur n'apparaît dans les journaux. Si, lors de la migration à partir de Lotus / Domino, vous avez rencontré ce problème, les actions suivantes vous aideront à résoudre ce problème:
- Lancez Lotus Notes avec des privilèges d'administrateur et accédez au carnet d'adresses.
- Dans les paramètres du carnet d'adresses, changez le format de message par défaut en «MIME préféré»
- Dans le même Lotus Notes fonctionnant avec des privilèges d'administrateur, modifiez le format de la base de données utilisateur en Mail (R6), qui provient du serveur et non du client de messagerie.
- Désactivez le routeur Lotus Domino à partir de la console d'administration Domino à l'aide de la commande tell router quit
- Emballez la base de données utilisateur à partir de la console d'administration Domino à l'aide de la commande «load compact userdb.nsf»
- Recherchez des erreurs dans la base de données en exécutant la commande fixup userdb.nsf à partir de la console Domino (et non à partir de la console administrateur)
- Depuis la console d'administration Domino, exécutez la commande «convert -e userdb.nsf» pour préparer la base de données pour le transfert imap
- Dans la console d'administration Domino, exécutez la commande «convert -h userdb.nsf» pour ajouter des en-têtes imap à tous les messages.
Après avoir terminé toutes ces étapes, le transfert de courrier de Lotus / Domino vers Zimbra à l'aide d'imapsync devrait se passer sans aucun problème.
En plus des utilitaires de migration, les clients Zimbra pour les ordinateurs de bureau et les appareils mobiles sont restés sans support. En outre, le client Web HTML a été supprimé de la prise en charge, qui a été utilisé pour garantir la compatibilité avec les navigateurs plus anciens et les appareils à faible consommation d'énergie. Tous peuvent être facilement remplacés par des clients tiers, car Zimbra prend en charge presque tous les standards et protocoles ouverts.
Rappelez-vous que la migration entre les serveurs Zimbra peut être effectuée à l'aide de l'outil de migration Zextras gratuit, que vous pouvez télécharger sur le site officiel de
Zextras .
Pour toutes questions relatives à la Suite Zextras, vous pouvez contacter le représentant de Zextras Katerina Triandafilidi par e-mail katerina@zextras.com