Sinkronisasi email dengan IMAP sync

Pernah terpikir untuk sinkronisasi email dari host satu ke lainnya atau server satu ke lainnya? Kebanyakan orang akan menggunakan IMAP dan sinkronisasi menggunakan outlook atau thunderbird.

Sebenarnya ada cara yang lebih mudah ketimbang sinkronisasi email lewat end user. Karena pastinya sangat ribet jika harus setting di komputer A dan profile A lalu setting juga di komputer yang sama profile B, atau mungkin di komputer yang berbeda.

Jika dibandingkan, berarti kita harus menggunakan extra bandwidth untuk transfer antar email ini. Pertama, kita harus mendownload email tersebut ke komputer kita menggunakan IMAP. Kedua, setelah terdownload semua (beserta attachment file jika ada) kita upload kembali ke host tujuan tempat email kita akan berlabuh. Satu kata, ribet.

Namun dengan IMAP sync, semua itu bisa teratas. Sayangnya untuk menjalankan IMAP sync ini kamu harus mempunyai pengetahuan sedikit tentang Unix tentunya. Kamu bisa minta tolong orang yang mengerti di bidang ini atau bisa email ke saya nanti dibantu.

Secara detail, hal mengenai IMAP sync dan informasinya bisa kamu temukan di website imapsync. Aplikasi open source dan yang versi gratisan hanya bisa dijalankan di linux saja. Ya sebenarnya di Windows dan Linux bisa, tapi lebih enak di linux.

Install IMAP sync

Pertama kita install dulu software imapsync. Bisa menggunakan salah satu parameter berikut, tergantung distro linux kamu. Run sebagai root atau sudo user.

yum install imapsync
apt-get install imapsync

Buat script executable

Kita akan membuatkan script simpel yang berguna untuk execute dari daftar email yang nanti akan diberikan. Sebenarnya ada 2 file, yaitu file executable dan file dari daftar email sebagai input yang nantinya berbentuk txt. Untuk file executable buat nama misal execute.sh.

echo Looping on account credentials found in file.txt
echo

{ while IFS=';' read h1 u1 p1 h2 u2 p2 fake
 do
 { echo "$h1" | egrep "^#" ; } > /dev/null && continue # this skip commented lines in file.txt
 echo "==== Starting imapsync from host1 $h1 user1 $u1 to host2 $h2 user2 $u2 ===="
 imapsync --useheader "Message-ID" --host1 "$h1" --user1 "$u1" --password1 "$p1" \
 --host2 "$h2" --user2 "$u2" --password2 "$p2" \
 "$@"
 echo "==== Ended imapsync from host1 $h1 user1 $u1 to host2 $h2 user2 $u2 ===="
 echo
 done
} < /path/to/file/email.txt

Buat script File daftar email

Kemudian kita buat file txt yang berisi daftar file email yang nantinya di migrasikan. File ini berisi host lama, user lama, kemudian host baru, dan user baru. Misal nama filenya email.txt. Contohnya di bawah ini :

host01;email01;password01;host02;email02;password02;
host01;email01;password01;host02;email02;password02;
host01;email01;password01;host02;email02;password02;

Dimana host 01 adalah IP / server dimana email server tersebut saat ini. Email 01 adalah nama email account di server saat ini. Password 01 adlaah password email di server saat ini.

Host 02 adalah IP / server dimana email server tersebut akan di migrasikan. Dalam hal ini destinasi email server. Email 02 adalah nama email account yang akan di migrasikan. Pasword 02 adalah password email account yang akan dimigrasikan.

Contoh format harus sama persis formatnya seperti di atas, dimana tiap format di pisahkan oleh tanda titik koma ( ; ) dan tidak menggunakan spasi.

Menjalankan script

Karena beberapa email mungkin akan sangat banyak isinya, bisa saja dari 100 MB hingga 2 GB per email account, maka dari itu ada baiknya menjalankan script tersebut dalam menggunakan screen.

Kita jalankan screen dulu :

screen -S nama-sesi

Lalu jalankan script tersebut. Misalnya kedua file tadi yaitu executable.sh dan email.txt berada di /root.

Kita edit dulu script executable yang berada di /root/executable.sh dan ubah bagian ini :

} < /path/to/file/email.txt

menjadi ke direktori yang telah ditentukan.

} < /root/email.txt

Kemudian kita jalankan hingga sync selesai.

sh /root/executable.sh

Sekarang kita bisa menunggu dengan keluar dari sesi screen, pencet ctrl A + D untuk detach session. Jika mau masuk lagi screen sesi tersebut, ketik

screen -ls

Lalu ketik screen -r <nomor sesi>. Dimana nomor sesi didapat saat kamu menampilkan screen -ls.

Lamanya proses sinkronisasi tergantung dari banyaknya email dan kecepatan dari server sendiri. Namun rata-rata dengan server yang kecepatannya 1 Gbps dengan email 500 MB hanya memakan waktu hitungan detik saja.

Solusi ini adalah cara paling cepat untuk mensinkronisasi antar 2 email, apalagi bagi kalian yang sedang migrasi email.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.