Beberapa waktu terkini, saya mendapat keluhan dari user mail server yang saya pelihara. Email-email tidak jelas masuk ke inbox mereka. Setelah saya pelajari salinan email yang dimaksud, tampak jelas bahwa email tidak terkirim dari email server kami. Akan tetapi berasal dari email server di luar. Tujuan dan asal email memang ke arah domain klien saya tersebut. Jadi sekiranya email tersebut tidak sampai ke tujuan, pasti akan berbalik ke arah email server kami.
Solusi yang dijelaskan disini meski berbasis Zimbra, jelas bisa diterapkan pada sistem lain yang menggunakan Postfix. Karena kita tahu Zimbra menggunakan Postfix sebagai MTA (Mail Transfer Agent).
Kembali ke masalah yang sedang kita bahas. Email-email tersebut mempunyai pola Subject yang mengandung kata “VIAGRA”. Meski keseluruhan subject berubah-ubah sesuai dengan alamat email yang dikirimi. Misalnya isi Subject-nya “blah VIAGRA Official Site -96%”, yang dikirim ke email blah@domain.com.
Dengan pola tersebut, diputuskan untuk menolak semua email dengan subject yang berisi kata “VIAGRA”.
Setelah menelusuri dokumentasi Postfix ditemukan keyword setelan header_checks. Setelan ini akan mencari pola yang ada pada header email sesuai dengan pola yang kita tentukan dan akan menjalankan aksi tertentu jika pola ditemukan.
Format file filter ini adalah:
/POLA/ AKSI OPSI
Langkah pertama adalah membuat file filter.
mail:~# su - zimbra zimbra@mail:~$ vi /opt/zimbra/conf/header_checks
Nama dan lokasi file tidak wajib seperti ini, asalkan Anda menyesuaikan setelan Postfix. Isi file /opt/zimbra/conf/header_checks adalah:
/^Subject:.*VIAGRA/ REJECT "Your email rejected since has VIAGRA in its Subject."
Tambahkan filter ini ke dalam konfigurasi Postfix.
zimbra@mail:~$ zmlocalconfig -e \ postfix_header_checks="pcre:/opt/zimbra/conf/postfix_header_checks, \ pcre:/opt/zimbra/conf/header_checks"
Atau dengan mengedit langsung file setelannya dengan perintah:
zimbra@mail:~$ vi /opt/zimbra/postfix/conf/main.cf
Kemudian tambahkan atau edit sehingga berisi baris berikut ini:
header_checks = pcre:/opt/zimbra/conf/postfix_header_checks, pcre:/opt/zimbra/conf/header_checks
Perhatikan awalan pcre, ini memberitahkan pada Postfix bahwa file filter berisi pola yang mengikuti aturan PCRE (Perl Compatible Regular Expressions).
Setelah selesai reload setelan yang baru.
zimbra@mail:~$ zmmtactl reload
Untuk Postfix,
mail:~# /etc/init.d/postfix reload
Selesai sudah, cek dengan mengirim email dengan isi Subject sesuai dengan filter yang dimaksud. Dan perhatikan file log /var/log/mail.log.
Contoh log sebagai berikut,
Jun 8 23:38:17 mail postfix/cleanup[24935]: 75AAAAF0027: reject: header Subject: nurmala VIAGRA ? Official Site -91% from 122-116-208-230.HINET-IP.hinet.net[122.116.208.230]; from= to= proto=SMTP helo=: 5.7.1 "Your email rejected since has VIAGRA in its Subject." Jun 8 23:38:17 mail postfix/cleanup[24936]: 93D19AF0030: reject: header Subject: nurmala.dewi VIAGRA ? Official Site -91% from 122-116-208-230.HINET-IP.hinet.net[122.116.208.230]; from= to= proto=SMTP helo=: 5.7.1 "Your email rejected since has VIAGRA in its Subject."
Selesai. Semoga bermanfaat.