Tahun II, Nomor 12, February 2001

Administrasi Email dengan Fetchmail, Cron dan Procmail

Sekedar contoh sederhana dari pengalaman pribadi. Jika ada koreksi, ide, atau saran, silakan kontak penulis melalui Redaksi.
Home
Halaman Muka

Membangun Web Mail dengan NeoMail

 

Fetchmail

Mengambil Email dari Server Remote ke Server Lokal

Karena Linux bisa multi user, maka administrator (root) dapat mengambil email banyak user di server remote (satu server atau lebih) dan memberikan kepada masing-masing user di server lokal. Salah satu program yang dapat menangani tugas pengambilan email ini adalah fetchmail. Dengan program cron (daemon-nya bernama crond), jadwal pengambilan dapat diatur secara mudah. Linux RedHat (penulis mengggunakan RedHat 6.2) menyediakan tool untuk fetchmail plus cron ini, yang dapat dikonfigurasi melalui linuxconf atau netconf. 
Gambar-1 memperlihatkan tampilan netconf di X-window yang telah ada modul untuk fetchmail dan cron. Klik bagian “Remote mail server (fetchmail)” untuk mengatur konfigurasi fetchmail.  Gambar-2 menunjukkan 3 bagian utama dari konfigurasi fetchmail, yaitu Basics, Mail servers dan Users. 

Basics

Basics atau “Remote mail retreival basics” berfungsi mengatur waktu pengambilan email, misalnya dengan interval 0 tapi dijadwal oleh cron (Gambar-3). Dalam kasus berikut ini, cron akan menjalankan program fetchmail (/usr/bin/fetchmail) dengan file konfigurasi /root/.fetchmailrc (file diawali tanda titik). 
Jadwal yang akan dikerjakan cron memiliki 5 kelompok waktu, yaitu menit, jam, hari dalam seminggu, tanggal dalam sebulan, dan bulan dalam setahun (Gambar-4). Baris Command artinya perintah yang akan dijalankan terjadwal oleh cron (/usr/bin/fetchmail -f /root/.fetchmailrc). Months berisi “*” berarti untuk semua bulan (Januari hingga Desember). Days of the month diisi “*” berarti untuk semua tanggal dalam setiap bulan. Days of the week diisi 1-6 artinya hanya untuk hari pertama (Senin) hingga keenam (Sabtu), sehingga pada hari Minggu cron tidak menjadwalkan fetchmail untuk root ini. Hours diisi 7-18 berarti hanya antara jam 7 pagi hingga 18. Minutes diisi 0, 20, 40 berarti fetchmail dijalankan oleh root pada menit ke 0, 20 dan 40. Dengan kata lain, root dijadwalkan oleh cron akan menjalankan fetchmail dengan file konfigurasi /root/.fetchmailrc pada tiap pukul 7.00, 7.20, 7.40, 8.00, 8.20, dan seterusnya hingga 18.40, tiap hari Senin hingga Sabtu. Klik (menjadi lekuk) “this entry is active” menandakan tabel cron (crontab) milik root ini diaktifkan. Crontab ini juga dapat diedit secara manual dengan perintah crontab -e. Konfigurasi seperti di atas akan menghasilkan file /var/spool/cron/root dengan isi sebagai berikut:
0,20,40 7-18 1-6 * * /usr/bin/fetchmail -f  /root/.fetchmailrc

Mail servers

Gambar-5 menunjukkan penentuan server mail mana saja yang akan diakses, termasuk jenis protokolnya. Bila pada form “Mail server list” masih kosong atau ingin membuat baru, klik tombol Add sehingga muncul form “Remote mail server access”. Isi “Mail server to access” dengan alamat domain atau IP server email, misalnya pop.mail.yahoo.com. Klik tombol di depan “Server is active”. Jika anda mengetahui jenis protokol server email, pilih protokol yang sesuai, misalnya POP3 atau IMAP. Isi dengan AUTO jika anda tidak tahu jenis protokolnya. Lalu klik Accept dan Quit untuk kembali ke menu utama (Gambar-2). 

Users

Untuk tiap server email yang akan diakses (Gambar-5 bawah), harus dimasukkan nama user yang terdaftar dan passwordnya. Jika “Mail user list” masih kosong, klik tombol Add dan isi baris Remote user name, Remote user password, dan Local user name (Gambar-6). Local user artinya user di server lokal yang akan menerima email dari fetchmail. CATATAN: Hati-hati saat mengisi form ini, karena password yang diketik akan tertulis transparan. Informasi lainnya perlu didefinisikan di bagian bawah, misalnya tidak ingin menghapus email di server remote setelah pengambilan oleh fetchmail ini (Don’t delete seen messages from server).  
Setting ini akan menghasilkan file /root/.fetchmailrc yang berisi antara lain sebagai berikut:
 poll pop.mail.yahoo.com with protocol POP3, 
 user "elektro98" there with password "rahasia-elektro98" is rus here
 with options keep rewrite mimedecode pass8bits

Semua konfigurasi ini harus diaktifkan dengan memilih “Activate the changes” (Gambar-7). Crond juga harus di-start atau di-restart, misalnya dengan menjalankan command berikut ini.
# /etc/rc.d/init.d/crond stop
# /etc/rc.d/init.d/crond start

Memfilter atau Membagi Email dengan procmail

Kalau hanya menggunakan fetchmail, administrator hanya bisa memberikan hasil pengambilan email kepada seorang user, misalnya root, tanpa melakukan filtering (pemilahan) lagi. Untuk melakukan filtering terhadap setiap email yang masuk ke server, kita dapat menggunakan procmail. Pemilahan oleh procmail ini bisa berdasar pengirim (from), penerima (to), judul (subject), dll. File konfigurasi procmail (.procmailrc) diletakkan di direktori home dari user, misalnya /root untuk superuser atau administrator.

Contoh .procmailrc
Dalam kasus kali ini, kita sebagai root akan mengambil email dari sebuah account (pop3) di salah satu server email di Internet, misalnya user_anda@pop3.telkom.net. Email di telkom.net ini menampung email hasil forward dari 5 anggota sebuah keluarga yang memiliki virtual domain di salah satu web-hosting. CATATAN: keluarga atau usaha kecil ini hanya mampu dial-up ke Internet (misal Telkomnet Isntant) dan sewa web-hosting hanya untuk forward email dan homepage sederhana.
Misalnya, user untuk web-hosting adalah user_asli, virtual domain di Internet (web-hosting) adalah domain_anda.com, user di server lokal sama dengan user di web-hosting, yaitu bapak, ibu, kakak, adik dan nenek. Konfigurasi sederhana procmail ditunjukan dalam file .procmailrc sebagai berikut (yang diletakkan pada direktori /root). 

SHELL=/bin/bash  # Ini jenis shell yang digunakan.
MAILDIR=/var/spool/mail # Direktori mail tiap user di lokal.
DEFAULT=$MAILDIR/root # User yang menerima email secara default.

:0:
*Delivered-To: user_asli-bapak@domain_anda.com
bapak

:0:
*Delivered-To: user_asli-ibu@domain_anda.com
ibu

:0:
*Delivered-To: user_asli-kakak@domain_anda.com
kakak

:0:
*Delivered-To: user_asli-adik@domain_anda.com
adik

:0:
*Delivered-To: user_asli-nenek@domain_anda.com
nenek

Dalam contoh ini, semua email yang ditujukan kepada 5 user pada domain_anda.com diforward ke user_anda@telkom.net. Setelah root di server lokal mengambil email user_anda@telkom.net dengan fetchmail, server email lokal (misal Sendmail) meneruskan ke procmail untuk dipilah-pilah (filtering). Email yang ditujukan ke bapak@domain_anda.com akan diberikan kepada user bapak (Delivered-To: user_asli-bapak@domain_anda.com). Demikian pula email untuk ibu, kakak, adik dan nenek akan diberikan ke user ibu, kakak, adik dan nenek. Jika ada email yang tidak memenuhi kriteria di atas akan diberikan kepada root (DEFAULT=$MAILDIR/root). 

Cara Konfiguarsi Client (Contoh: Netscape Messenger)

Agar user lokal bisa mengambil email secara remote dengan program email yang umum seperti Netscape Messenger, Outlook Express dan Eudora, di server lokal harus diinstall server POP3 atau IMAP. RedHat 6.2 menyertakan software bernama “imap” yang mendukung POP3 dan IMAP. Setelah “imap” terinstall, pastikan bahwa POP3 atau IMAP tidak diberi tanda “#” pada file /etc/inetd.conf.
Untuk menguji server email yang telah dikonfigurasi sesuai dengan 2 artikel edisi sebelumnya (ELEKTRO No. 33 dan 34) dan tulisan di atas, Anda dapat menggunakan salah satu aplikasi, misalnya Netscape Messenger. Pertama pilih menu Edit, lalu Preferences, sehingga nampak seperti Gambar-8.  Setelah mengisi Identity dengan nama lengkap dan alamat email, isi bagian Mail servers sesuai dengan konfigurasi yang telah dibuat (Gambar-9). Outgoing mail (SMTP) server diisi dengan alamat IP atau domain server lokal dan user yang terdaftar di server email tersebut, misalnya server “10.2.0.13” dan user “rus”. Klik Add untuk menambahkan Incoming Mail Server. 
Gambar-10 menunjukkan konfigurasi Netscape Messenger untuk pengambilan email di server dengan alamat IP “10.2.0.13”, server type atau protokol “POP” dan user “rus”. Tidak seperti fetchmail yang dapat mengambil email dari beberapa server POP, Netscape (4.72) hanya bisa satu server POP. Sedangkan untuk mengambil dari server IMAP, Netscape dapat mengakses lebih dari satu server.
Di Linux, selain Netscape juga tersedia kmail (dari KDE), xfmail, dan masih banyak lagi, yang bisa mengambil email dari server POP3 atau IMAP dengan tampilan grafis di X-window (GUI: Graphical User Interface).

Oleh Rusmanto



Email : jakarta@jakarta.linux.or.id


| Home | Halaman Muka
 © 1999-2001  ELEKTRO Online
All Rights Reserved.
Last modified on :