Is there a way to sync every mail from the old server into one single folder on the new server using imapsync? I can't find something relevant in the manual…
Thanks in advance!
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
The FAQ http://imapsync.lamiral.info/FAQ says:
Q. Is it possible to synchronize all messages from one server to another without recreating the folder structure and the target server.
For example, to synchronize all messages in all forders on host1 to folder INBOX only on host2:
1) First try (safe mode):
imapsync \ ... --regextrans2 "s/(.*)/INBOX/" \ --dry --justfolders
2) See if the output says everything you want imapsync to do, --dry option is safe and does nothing real.
3) Remove --dry Check the imap folder tree on the target side, you should only have one: the classical INBOX.
4) Remove --justfolders
There is a way to sync every mail, including all the folders hierarchy from the old server root, into one single folder on the new server using imapsync.
imapsync --host1 mail.fromhost1.com --user1 myuser1 --passfile1 passfile1.txt --host2 mail.tohost2.com --user2 myuser2 --passfile2 passfile2.txt --subfolder2 INBOX.destinationfolder --justfolders --dry
The option --subfolder2 "syncs the whole host1 folders hierarchy under the
host2 folder named str" (imapsync README 1).
When running imapsync with the --dry option, you should be able to see the folders from both your mailboxes listed from the output of imapsync so you'll know what to put instead of INBOX.destinationfolder
As @Gilles LAMIRAL says:
Yes exactly you can use imapsync to migrate mailboxes from one mail server to another server. We have to tell imapsync the usernames and passwords of the mail accounts that we want to migrate. Theoretically, we can use the --password1 and --password2 switches for the passwords, but this is dangerous
Therefore it's better to create two files (/etc/secret1 and /etc/secret2 in this example) that contain the passwords (in this example, it's secret for both mail accounts), do a chmod 600 on these files, and use the --passfile1 and --passfile2 switches.
Now below is sample command
imapsync --host1 server1.example.com --user1 [email protected] --passfile1 /etc/secret2 --host2 server2.example.com --user2 [email protected] --passfile2 /etc/secret2