Imapsync
Imapsync is a versatile email migration tool that allows users to easily transfer emails between different IMAP email servers. It supports various features such as incremental sync, folder hierarchy preservation, and SSL encryption, making it a reliable choice for seamless email migration.
Installation
To install Imapsync system wide add the following line to your system configuration
environment.systemPackages = [ pkgs.imapsync ];
Usage
Following example transfers all mails from server mail1.example.org to mail2.example.org via IMAP protocol using supplied credentials
imapsync \
  --host1 mail1.example.org --user1 user1 --password1 "secret1" \
  --host2 mail2.example.org --user2 user1 --password2 "secret1" \
  --addheader
Adding parameter --addheader helps if you want to sync draft and sent messages which usually have no headers to be identified.
Filter messages and deletion
Additional flags --delete1 and --search can be added to sync all messages before the specified date and to remove them after successfull migration to host2
imapsync \
  [...]
  --delete1 --delete1emptyfolders \
  --search "SENTBEFORE 01-Jan-2008"