Imapsync adalah tool untuk menyalin isi mailbox dari satu server email ke server email lain melalui protokol IMAP. Semua folder dan email (Inbox, Sent, Drafts, dan lainnya) disalin ke mailbox baru. Prosesnya bisa diulang tanpa menimbulkan email dobel. Imapsync tidak memigrasikan contacts dan calendar.
Prasyarat:
- VPS Rocky Linux 8 dengan akses root atau sudo.
- Hostname atau IP server email lama (asal) dan server email baru (tujuan).
- Akun email di server baru sudah dibuat. Imapsync tidak membuat akun baru.
- Email dan password setiap akun di server lama dan server baru.
- Port IMAP SSL (993) pada kedua server bisa diakses dari VPS.
STEP 1 : Login ke root VPS, kemudian aktifkan repository EPEL dan PowerTools
sudo dnf install -y epel-release dnf-plugins-core
sudo dnf config-manager --set-enabled powertools
STEP 2 : Setelah itu, lakukan installasi Imapsync
sudo dnf install -y imapsync
Jika sudah berhasil terinstall, cek installasinya dengan :
Kalau versinya muncul, Imapsync siap dipakai.
imapsync --version

STEP 3 : Cek koneksi kedua server
openssl s_client -connect mail.domainlama.com:993 -brief
openssl s_client -connect mail.domainbaru.com:993 -brief
Jika berhasil, muncul informasi sertifikat dan baris CONNECTION ESTABLISHED. Jika gagal atau timeout, periksa firewall di server email atau cek apakah port 993 aktif.

STEP 4 : Cek apakah email dan password benar dengan opsi --justlogin. Opsi ini hanya mencoba login dan tidak memindahkan data:
imapsync \
--host1 mail.domainlama.com --ssl1 --port1 993 --user1 info@domainlama.com --password1 'PasswordLama123' \
--host2 mail.domainbaru.com --ssl2 --port2 993 --user2 info@domainbaru.com --password2 'PasswordBaru123' \
--justlogin
Jika login berhasil, di output akan muncul Success login on [mail.domainlama.com] with user [[email protected]] dan baris serupa untuk host2.
STEP 5 : buat file daftar akun dengan :
nano accounts_list.txt
Isi satu baris per akun, dengan 4 kolom dipisah spasi: email lama, password lama, email baru, password baru.
info@domainlama.com PasswordLama123 info@domainbaru.com PasswordBaru123
admin@domainlama.com PasswordLama456 admin@domainbaru.com PasswordBaru456
Simpan dengan CTRL+O, Enter, CTRL+X, lalu batasi hak aksesnya karena berisi password:
chmod 600 accounts_list.txt
STEP 6 : Buat script migrasi dengan :
nano imapsync.sh
Isi script dengan :
#!/bin/bash
############# KONFIGURASI #############
ACCOUNTS=accounts_list.txt # File daftar akun email
SRCHOST=mail.domainlama.com # IP atau hostname server email lama
DSTHOST=mail.domainbaru.com # IP atau hostname server email baru
LOG=sync.log
#######################################
grep -vE '^\s*(#|$)' "$ACCOUNTS" | while read -r SRCUSER SRCPW DSTUSER DSTPW
do
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Sinkronisasi $SRCUSER ($SRCHOST) ke $DSTUSER ($DSTHOST) ..." | tee -a "$LOG"
# Simpan password sementara ke file agar tidak tampil di command line
echo -n "$SRCPW" > imap-secret-src
echo -n "$DSTPW" > imap-secret-dst
imapsync \
--host1 "$SRCHOST" --ssl1 --port1 993 --user1 "$SRCUSER" --passfile1 imap-secret-src \
--host2 "$DSTHOST" --ssl2 --port2 993 --user2 "$DSTUSER" --passfile2 imap-secret-dst \
--automap --skipcrossduplicates < /dev/null
rm -f imap-secret-src imap-secret-dst
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Proses imapsync selesai!" | tee -a "$LOG"
Keterangan:
- ACCOUNTS: nama file daftar akun.
- SRCHOST / DSTHOST: server email lama (asal) dan baru (tujuan).
- –ssl1 / –ssl2 dan port 993: koneksi memakai SSL/TLS.
- –automap: mencocokkan nama folder (Sent, Drafts, Trash) antar server secara otomatis.
- –skipcrossduplicates: mencegah email duplikat antar folder.
- < /dev/null: mencegah imapsync ikut membaca isi file daftar akun, sehingga semua akun diproses.
Jika server lama tidak mendukung SSL, hapus –ssl1 dan ganti –port1 993 menjadi –port1 143.
STEP 7 : Beri izin eksekusi
chmod +x imapsync.sh
STEP 8 : Lakukan uji coba
./imapsync.sh
STEP 9 : Setelah berhasil, jalankan migrasi dengan :
sudo dnf install -y screen
screen -S migrasi
./imapsync.sh
Untuk keluar dari screen tanpa menghentikan proses, tekan CTRL+A lalu D. Untuk kembali: screen -r migrasi.
Saat berjalan, imapsync menampilkan koneksi ke kedua server, daftar folder, lalu progres email yang disalin, misalnya:
Host1: connected on [mail.domainlama.com] port [993] with SSL
Host2: connected on [mail.domainbaru.com] port [993] with SSL
...
msg INBOX/1 {2345} copied to INBOX/1 ...
STEP 10 : pastikan proses migrasi berhasil dilakukan. Di akhir setiap akun akan muncul ringkasan statistik (jumlah email dan folder yang ditransfer, total ukuran, durasi). Migrasi sukses jika baris terakhirnya seperti ini:
Exiting with return value 0 (EX_OK: successful execution) 0/50 nb_errors/max_errors
Imapsync bisa dijalankan ulang kapan saja. Email yang sudah tersalin tidak dikirim lagi, hanya email baru yang diproses. Ini berguna untuk menyalin email yang masuk selama migrasi, misalnya tepat sebelum DNS/MX diarahkan ke server baru.
Pastikan juga isi email di server lama dan baru sama ya sob!
Selesai. Email dari server lama sudah tersalin ke server baru dan bisa dicek lewat webmail. Setelah itu, arahkan MX record domain ke server email baru, lalu jalankan imapsync sekali lagi untuk menyalin email yang masuk selama proses migrasi.
Hubungi tim support jika mendapati kendala ya sob!
Hai, Sob! Buat kamu yang udah kepo sama cara pantau monitoring kinerja VPS kamu, yuk ikutin tutorialnya dibawah ini.Tapi, sebenernya Read more
Hai, Sob, kamu suka bingung gimana caranya migrasi file server website ke VPS tanpa cPanel? Yuk, kamu harus banget pantengin Read more
Tahukah kamu, dengan membeli paket VPS SSD dan Ditambah addon cPanel dan WHM di Jagoan Hosting, secara otomatis kamu akan mendapatkan Read more
Hai, Sob, tahukah kamu, kamu bisa menggunakan cPHulk dari WHM/cPanel kamu, loh! Wah, kita pelajari bareng yuk tutorialnya.Eits, tapi kia Read more