Tips Imapsync : Backup & Sinkronisasi Email Tanpa Perlu Tahu Password Tiap User
Seperti yang saya tuliskan pada artikel kemarin : Instalasi & Penggunaan Imapsync untuk Sinkronisasi & Backup Email, script imapsync normal biasanya memerlukan password antara mailbox yang disinkronisasi/backup dengan mailbox tujuan. Password boleh beda, namun kita harus tahu keduanya. Hal ini bisa menjadi kendala besar jika kita ingin melakukan sinkronisasi atau backup email. Mengapa ? Berikut ini pertimbangannya :
- Kalau hanya 1-2 password, menyamakan password mungkin bukan sesuatu yang sulit, tapi jika sudah ratusan atau ribuan email, menyamakan password bisa menjadi kendala. Jikapun bisa dibantu dengan script, hal ini bisa terbentur pada pertimbangan kedua berikut ini,
- Menyamakan password semua mailbox agar bisa ditransfer bukanlah opsi yang baik, meski bisa dilakukan. Tidak semua user bersedia passwordnya diketahui orang lain. Aspek keamanan mailbox merupakan isu lainnya.
- Sangat jarang 1 mail server, password mailboxnya sama semua kecuali Adminnya malas, hehehe…
Untuk mengatasi hal ini, imapsync menyediakan satu parameter yang sangat bermanfaat, yaitu parameter –authuser. Jika kita menggunakan parameter ini, kita bisa mengakses seluruh isi mailbox user hanya dengan 1 buah password Admin. Jadi jika kita ingin sinkronisasi 1000 account email di mail server lama ke 1000 account email di email baru, kita hanya cukup mengetahui 2 buah password, yakni password admin di mail server lama dan password admin di mail server baru.
Sayangnya, tidak semua engine mail server mendukung opsi ini. Pada literatur yang saya dapatkan di internet, dukungan pada hal ini biasanya disediakan dari sisi engine imap masing-masing, terutama untuk versi-versi terbaru. Hal ini bisa menjadi masalah karena sebagian besar email server yang hendak dibackup/sinkronisasi merupakan mail server versi lama. Untuk sementara hal ini saya kesampingkan, pada artikel berikutnya saya akan share cara menyiasati (mengakali ? 😀 ) kekurangan ini, seperti yang pernah saya lakukan di salah satu klien perusahaan media besar di Indonesia.
Berikut adalah contoh script untuk melakukan sinkronisasi antara dua buah mail server yang kebetulan sama-sama Zimbra. Secara prinsip, script ini bisa digunakan untuk sinkronisasi antar jenis mail server yang berbeda.
Nama file : sync-mail.sh
#!/bin/sh
#Hapus Layar
clear
LOCATION=`pwd`
USER_LIST="acc.txt"
USERS=`cat $LOCATION/$USER_LIST`
echo "Looping for all users"
for ACCOUNT in $USERS; do
ACC1=`echo $ACCOUNT | awk -F@ '{print $1}'`;
ACC2=`echo $ACCOUNT | cut -d '.' -f1`
#Import email
imapsync --host1 192.168.10.1 --user1 $ACCOUNT --authuser1 admin --password1 passwordadminserver1 --authmech1 PLAIN --host2 192.168.10.2 --user2 $ACCOUNT --authuser2 admin --password2 passwordadminserver2
echo ""
echo "Import data email account : $ACCOUNT telah selesai, Tekan ENTER untuk proses data berikutnya..."
echo ""
read presskey
done
echo "Proses sinkronisasi email selesai dilakukan"
Catatan :
- Script diatas akan menggunakan file acc.txt yang berisi daftar user. Jika menggunakan Zimbra, daftar ini bisa diambil dengan perintah (menggunakan akses root, jangan lupa sesuaikan path-nya) :
mkdir /home/vavai/sync-mail chown -R vavai:zimbra /home/vavai/sync-mail chmod 775 /home/vavai/sync-mail su - zimbra zmprov -l gaa > /home/vavai/sync-mail/acc.txt exit
Jika menggunakan Zimbra, baris USER_LIST=”acc.txt” bisa diganti dengan USER_LIST=`su – zimbra -c ‘zmprov -l gaa’`; untuk langsung mengakses semua account Zimbra.
- Edit baris : echo “Import data email account : $ACCOUNT telah selesai, Tekan ENTER untuk proses data berikutnya…” dan baris : “read presskey” jika ingin agar proses sinkronisasi berjalan langsung tanpa berhenti disetiap account. Baris ini saya tambahkan sebagai baris pengecekan untuk memastikan proses sinkronisasi berjalan sesuai keinginan
- Pelajari opsi-opsi yang disediakan oleh Imapsync, misalnya opsi –ssl1 atau –ssl2 untuk akses Imap via SSL, opsi –noauthmd5 jika tidak menggunakan authentikasi md5 dan lain-lain
Semoga bermanfaat.
klo dengan google apps gimana mas vavai ?
Saya belum coba apakah Google Apps mendukung –auth-user atau tidak mas. Belum sempat coba.
salah satu siasat untuk ngakali jika tidak mendukung authuser dan user gak mau memberitahu password adalah dengan cara melakukan sinkronisasi folder maildir/mbox ke mailserver lain. Nah di server lain ini passwordnya yang di set sama semua. baru lakukan proses imapsync. ini rada ribet, tapi pernah sukses saya terapkan.
@Dudi,
Hal yang sama saya terapkan di perusahaan media yang saya tuliskan diatas mas 🙂
kelupaan. atau kalo bisa diupgrade engine imap-nya ya di upgrade aja spy support authuser. ini belum pernah coba, tapi harusnya bisa sih ya?
Mas Vavai,
Ketika menjalankan imapsync, maka keluar notifikasi :
Unknown option: authuser1
Unknown option: authuser2
Apakah ini berati imap server nya tidak support authuser atau imapsync nya sendiri yg tidak support authuser? karena ketika saya coba imapsync –help, saya tidak menemukan opsi authuser. Saya pakai imapsync versi 1.366.
Mas dudi,
bisa share url bagaimana caranya melakukan sinkronisasi maildir antar mailserver?
Terimakasih
#Irwanto, sinkronisasi biasa aja gunakan rsync. tapi create dulu accountnya di mail server kedua.
@Irwanto,
Saya pakai imapsync 1.32-28.1, ada opsinya kok mas :
imapsync –help
usage: /usr/bin/imapsync [options]
Several options are mandatory.
–host1 : “from” imap server. Mandatory. : port to connect on host1. Default is 143. : user to login on host1. Mandatory. : user to auth with on host1 (admin user).
–port1
–user1
–authuser1
Avoid using –authmech1 SOMETHING with –authuser1.
Terima kasih mas artikelnya, saya sudah coba berhasil pindahkan mailbox dari server 1 ke server yang ke 2.
Kalau mau memindahkan db account di ldapnya bagaimana ya mas? jadi account sama passwordnya tetap sama.
Bro vavai,
Terima kasih script nya, sangat membantu saat kemarin proses migrasi.
Saran saja, kalau bisa pada script nya tolong ditambahkan –syncinternaldates agar email hasil import nya menggunakan original date ketika email diterima, bukan date ketika email diimport.
Thanks.
pak vavai, sy sudah berhasil syncronize dari imap (hmail) ke Zimbra, tp knp proses sync terhenti saat proses message tersisa sekitar 373 dari total 420 message, jadi hanya skitar 50 message yg brhasil di-copy..
mohon pencerhannya ada kesalahan prosedur dimana..
terima kasih pak..
hadeuh pake batch processing gini gak jalan pak..
problemnya di : auth [PLAIN]: 2 NO Unsupported authentication mechanism.
kenapa itu ya pak?
@Vian,
Coba test manual untuk 1 mailbox bisa nggak dan lancar nggak?
sy test 1 akun berhasil jalan, cuma yg di sync cm 80message dari 400an message..
untuk batch process pake authuser, blum berhasil sama sekali…
boleh komunikasi via email aja? atau media komunikasi lain pak?
need your help..
@Vian,
Bisa komunikasi by email mas.
BTW, coba check kuota jangan2 di Zimbra sudah diset kuota maksimal sehingga hanya 80 email yang masuk.
kuota 200 MB sy rasa cukup untuk sekitar 400 messages yg hampir tidak ada attachment.
untuk yg batch processing, sy berhasil login hanya untuk yg admin saja, untuk yg user lain knp muncul No Invalid Username and Password atau gak BAD GOODBYE..
mas saya sdh coba tp ada error “no authentication failed”, padahal imapnya capability untuk authenticate plan. tp knp ya?
trus itu authuser dan pass yg dimaksud itu user pass yg biasa dipake untuk login ke server bukan?
takutnya salah masukin authuser nya.
Mas vavai saya juga mengalami masalah yang sama auth [PLAIN]: 2 NO [AUTHENTICATIONFAILED] Authentication failed. migrasi dari cPanel ke zimbra
Imapsync support untuk authenticate plain
pak vavai, ketika saya menjalankan perintah :
“imapsync –host1 139.0.9.130 –user1 esti.priyanti@dmsinvestama.com –authuser1 admin –password1 password1 –ssl1 –port1 993 –authmech1 PLAIN –host2 192.168.3.30 –user2 esti.priyanti@dmsinvestama.com –authuser2 admin –password2 password2 –ssl2 –port2 993 -authmech2 PLAIN”
yang tercopy malahan isi mail dari account admin bukan email usernya…. mohon pencerahan pak…
Dicoba dulu barangkali bisa