On destination host
Install CentOS 7/8 QMT, instructions here.
toaststat (make sure all services are running)
qmailctl stop && systemctl stop dovecot

On source host
dhost=192.168.1.3 (change to suit)
ssh-keygen
ssh-copy-id $dhost
ssh $dhost (test, no password should be required)

# The first rsync migrates the bulk of the email database except those queued during sync
rsync --progress -zv -are ssh /home/vpopmail/domains/ root@$dhost:/home/vpopmail/domains

qmailctl stop && systemctl stop dovecot

mysqldump -u root -p vpopmail > vpopmail.sql
scp vpopmail.sql root@$dhost:/root

# The second rsync, services stopped, migrates the balance of the email database 
# and control files
rsync --progress -zv -are ssh /home/vpopmail/domains/ root@$dhost:/home/vpopmail/domains
rsync --progress -zv -are ssh /var/qmail/control/ root@$dhost:/var/qmail/control
rsync --progress -zv -are ssh /var/qmail/users/ root@$dhost:/var/qmail/users
rsync --progress -zv -are ssh /etc/tcprules.d/ root@$dhost:/etc/tcprules.d
rsync --progress -zv -are ssh /etc/dovecot/toaster.conf root@$dhost:/etc/dovecot
rsync --progress -zv -are ssh /etc/dovecot/local.conf root@$dhost:/etc/dovecot

# Not necessary to the migration
rsync --progress -zv -are ssh /usr/share/toaster/include/admin.pass  root@$dhost:/usr/share/toaster/include
rsync --progress -zv -are ssh /usr/share/toaster/include/admin.htpasswd  root@$dhost:/usr/share/toaster/include
rsync --progress -zv -are ssh /usr/share/squirrelmail/plugins/ root@$dhost:/usr/share/squirrelmail/plugins
rsync --progress -zv -are ssh /etc/spamassassin/.spamassassin/  root@$dhost:/etc/spamassassin/.spamassassin
rsync --progress -zv -are ssh /etc/spamassassin/local.cf  root@$dhost:/etc/spamassassin
rsync --progress -zv -are ssh /var/lib/squirrelmail/prefs/  root@$dhost:/var/lib/squirrelmail/prefs

On destination host
mysql -u root -p vpopmail < vpopmail.sql
qmailctl cdb && qmailctl start && sleep 2s && systemctl start dovecot && toaststat


Questions, comments, suggestions, corrections...contact Eric on the QMT list