GNU/Linux >> Belajar Linux >  >> Panels >> Webmin

Filter Surat Procmail

Halaman ini menjelaskan cara menggunakan Procmail program dan Webmin untuk menyaring dan mengirimkan email yang masuk ke sistem Anda.

Pengantar Procmail

Procmail adalah program yang kuat untuk menyaring dan mengarahkan ulang email yang biasanya dikirim ke kotak surat pengguna. Ini dapat digunakan di kedua tingkat sistem untuk memfilter pesan untuk semua pengguna di sistem Anda, berdasarkan per pengguna, atau keduanya. Tidak seperti alias Sendmail biasa, Procmail dapat digunakan untuk mengirimkan pesan secara berbeda tergantung pada header dan kontennya. Ini menjadikannya alat yang sangat baik untuk memblokir email yang tidak diinginkan, seperti spam.

Saat diinstal pada sistem, Procmail secara efektif menggantikan perintah pengiriman email normal mail.local yang dijalankan oleh Server Email Sendmail dan MTA lainnya untuk menambahkan pesan ke file email pengguna. Meskipun paling sering digunakan dengan Sendmail, MTA lain seperti QMail Mail Server dan Postfix Mail Server dapat dikonfigurasi untuk menggunakan Procmail untuk pengiriman juga. Sejauh menyangkut program, server email yang sebenarnya digunakan tidak masalah selama email diteruskan dengan benar.

File konfigurasi utama Procmail adalah /etc/procmailrc, yang biasanya dikelola oleh administrator sistem. Pengguna individu juga dapat membuat file .procmailrc mereka sendiri dengan format yang sama di direktori home mereka. File seluruh sistem selalu dibaca dan diproses terlebih dahulu, sehingga aturan apa pun yang ada di dalamnya untuk mengarahkan ulang pesan berdasarkan kontennya tidak dapat ditimpa oleh pengguna individu.

File konfigurasi Procmail dibagi menjadi beberapa tindakan, yang masing-masing memiliki serangkaian kondisi dan mode pengiriman. Kondisi menentukan pesan mana yang cocok dengan tindakan, sedangkan mode pengiriman mengontrol apa yang terjadi pada pesan yang cocok. Procmail akan memproses tindakan secara berurutan hingga menemukan tindakan yang cocok, mengirimkan pesan seperti yang ditentukan dan kemudian menghentikan pemrosesan.

File konfigurasi juga dapat menyertakan penetapan variabel yang dapat digunakan oleh tindakan selanjutnya atau bahkan variabel lain. Itu juga dapat berisi bagian kondisional khusus, yang merupakan daftar tindakan yang akan dijalankan hanya jika beberapa kondisi cocok. Di satu sisi, ini seperti pernyataan if-then dalam bahasa pemrograman.

Procmail berperilaku hampir sama pada semua sistem operasi mirip Unix. Satu-satunya perbedaan adalah lokasi pengiriman default - semua distribusi Linux menggunakan /var/spool/mail sebagai direktori file email pengguna, yang varian Unix lainnya seperti Solaris menggunakan /var/mail. Namun, perbedaan ini tidak berpengaruh pada format file konfigurasi program atau antarmuka pengguna modul Filter Surat Procmail.

Procmail paling berguna ketika dikonfigurasi oleh pengguna individu untuk melakukan tugas-tugas seperti menyortir email dari orang yang berbeda ke dalam kotak surat yang berbeda, menulis ke dua file surat yang berbeda atau menjatuhkan email dari alamat tertentu. Modul Procmail Webmin dan bab ini hanya membahas konfigurasi seluruh sistem - jika Anda menginginkan alat yang memungkinkan pengguna individu mengonfigurasi program melalui antarmuka web, Usermin adalah program yang digunakan. Ia memiliki modul dengan antarmuka identik yang mengelola file .procmailrc alih-alih /etc/procmailrc, dan modul lain dengan antarmuka yang lebih sederhana.

Konfigurasi Procmail global dapat digunakan untuk mengirim email ke direktori yang berbeda atau dalam format yang berbeda dengan yang biasanya digunakan oleh server email Anda. Misalnya, alih-alih email pengguna ditambahkan ke file di /var/spool/mail, itu bisa ditulis ke file mbox di direktori home mereka. Lebih baik lagi, Procmail dapat diatur untuk menulis ke direktori surat bergaya Qmail, biasanya disebut Maildir dan terletak di direktori home pengguna.

Karena hanya menangani email yang dikirimkan secara lokal di sistem Anda, Procmail tidak dapat digunakan untuk penyaringan email jika Anda menggunakan program klien seperti Mozilla atau Evolution untuk mengunduh email dari ISP atau server perusahaan Anda. Jika Anda tidak menjalankan server email Anda sendiri tetapi masih ingin menggunakan fitur Procmail, Anda perlu mengatur Pengambilan Surat Fetchmail untuk mengunduh pesan dan meneruskannya ke MTA di sistem Anda.

Modul Filter Surat Procmail

Modul Webmin untuk mengelola file konfigurasi seluruh sistem disebut Procmail Mail Filter, dan dapat ditemukan di bawah kategori Server. Mengklik ikonnya akan membawa Anda ke halaman utama seperti yang ditunjukkan pada gambar di bawah. Semua tindakan yang ada terdaftar, dan di bawahnya ada tautan untuk menambahkan tindakan baru dari berbagai jenis.


Halaman utama modul Procmail

Tidak seperti modul lainnya, modul ini tidak akan mengeluh jika Procmail tidak diinstal pada sistem Anda. Anda harus menggunakan modul Paket Perangkat Lunak untuk memeriksa dan menginstal paket yang disertakan dengan distribusi Linux atau sistem operasi Anda. Jika tidak ada paket, Anda perlu mengunduh sumber dari www.procmail.org, kompilasi dan instal.

Menginstal Procmail saja tidak cukup untuk benar-benar digunakan di sistem Anda. Secara default, server email seperti Sendmail, Qmail dan Postfix menggunakan program pengiriman email standar mereka sendiri dan bukan Procmail. Pengguna individu dapat mengubah ini dengan membuat file .forward atau .qmail yang berisi baris /usr/bin/procmail yang meneruskan semua email masuk ke program Procmail. Namun, lebih baik untuk mengkonfigurasi ulang MTA Anda secara global untuk menggunakan Procmail sehingga pengguna individu tidak perlu mengaturnya. Bagian *Menyiapkan Sendmail* di bawah ini menjelaskan cara mengonfigurasi Sendmail - server email lain perlu diatur secara berbeda.

Menyiapkan Sendmail

Selama Anda memiliki file M4 dari mana file konfigurasi Sendmail utama Anda dibuat, pengaturan Sendmail untuk menggunakan Procmail itu mudah. Sayangnya, mengonfigurasi server email dengan mengedit sendmail.cf secara langsung tidaklah mudah, sehingga tidak dibahas dalam bab ini. Namun, semua distribusi Linux modern menyertakan file M4 yang Anda perlukan, baik dalam paket sendmail atau yang terpisah seperti sendmail-cf.

Untuk mengkonfigurasi Sendmail MTA untuk menggunakan Procmail, ikuti langkah-langkah berikut:

  1. Buka modul Konfigurasi Sendmail, yang dapat ditemukan di Webmin di bawah kategori Server.
  2. Klik ikon *Sendmail M4 Configuration *di halaman utamanya. Daftar arahan M4 yang ada akan muncul - jika tidak, file M4 yang diperlukan untuk mengkonfigurasi ulang Sendmail mungkin tidak diinstal pada sistem Anda.
  3. Periksa apakah baris FEATURE(local_procmail) sudah ada. Jika ya, pengiriman menggunakan Procmail sudah diaktifkan dan tidak perlu mengikuti langkah selanjutnya.
  4. Dari menu di sebelah Tambahkan jenis entri baru tombol pilih Fitur , lalu tekan tombol untuk menampilkan formulir pembuatan fitur.
  5. Dari Fitur pilih menu local_procmail . Keluar dari Parameter lapangan kosong.
  6. Tekan tombol Buat tombol untuk menambahkan fitur baru ke file M4. Browser Anda akan dikembalikan ke daftar direktif yang ada, di bagian bawahnya akan ada baris FEATURE(local_procmail) baru.
  7. Klik panah atas di sebelah baris baru sebanyak yang diperlukan untuk memindahkannya ke atas baris MAILER(lokal). Ini diperlukan karena file diproses secara berurutan, dan direktif baru mengubah perilaku baris MAILER.
  8. Saat baris FEATURE baru sudah terpasang, tekan tombol *Rebuild Sendmail Configuration* di bagian bawah halaman. Halaman konfirmasi akan ditampilkan yang menunjukkan perubahan yang akan dilakukan pada file konfigurasi Sendmail utama - dan selama Anda belum memodifikasi sendmail.cf secara langsung, perubahan tersebut hanya akan terkait dengan dukungan Procmail yang baru.
  9. Klik Ya, ganti sekarang agar konfigurasi baru disimpan dan diaktifkan. Mulai sekarang, semua email yang dikirim oleh Sendmail ke pengguna lokal akan diproses oleh Procmail. Untuk memeriksa apakah semuanya berfungsi, coba kirim beberapa pesan percobaan dan pastikan pesan terkirim seperti biasa.

Untuk informasi selengkapnya tentang cara kerja fitur M4 modul Sendmail dan di mana menemukan file konfigurasi, baca bagian *Menambahkan fitur Sendmail dengan M4* pada Konfigurasi Sendmail.

Membuat dan mengedit tindakan

Seperti yang dijelaskan dalam pengantar bab ini, file konfigurasi Procmail terdiri dari serangkaian tindakan. Ketika email tiba, masing-masing diperiksa secara berurutan hingga ada yang cocok dan mode pengirimannya dilakukan. Jika tidak ada tindakan yang cocok (atau tidak ada), email dikirim ke tujuan default yang biasanya file email pengguna di bawah /var/spool/mail.

Untuk membuat tindakan baru, ikuti langkah berikut :

  1. Klik Tambahkan tindakan filter baru link di bawah daftar tindakan yang ada di halaman utama modul. Formulir yang ditunjukkan pada gambar di bawah ini akan ditampilkan untuk memasukkan tujuan dan kondisinya.
  2. Pilih jenis tujuan untuk pesan yang cocok dengan tindakan ini dari Mode pengiriman Tidak bisa. Opsi yang tersedia adalah :*Tambahkan ke file *Email akan ditambahkan dalam format kotak surat standar ke file yang dimasukkan di bidang teks yang berdekatan, seperti /var/spool/mail/fred . Untuk membuang pesan, masukkan /dev/null sebagai file. *Tulis ke maildir *Email yang cocok akan ditambahkan ke direktori surat bergaya Qmail yang jalurnya dimasukkan dalam bidang teks. Jika direktori ini belum ada, Procmail akan membuatnya (dan subdirektori yang dibutuhkan) untuk pengguna. *Tulis ke folder MH *Email akan ditambahkan ke direktori email bergaya MH yang ditentukan. Format email ini juga menggunakan satu file per pesan, tetapi menempatkannya di semua direktori tunggal dan memberikan file pesan yang menambahkan nama file numerik, seperti 1, 2, 3 dan seterusnya. *Teruskan ke alamat *Email akan dikirim ke alamat atau pengguna yang dimasukkan di bidang teks yang berdekatan, seperti [email protected] . *Umpan ke program *Pesan email yang cocok akan dimasukkan sebagai input ke program yang jalur dan argumennya dimasukkan ke dalam kotak teks di sebelah menu. Jika nama file atau direktori email non-absolut (seperti Kotak Surat atau Maildir ) dimasukkan, Procmail akan menganggap bahwa itu relatif terhadap direktori home pengguna yang menerima email tersebut.
  3. Agar Procmail memeriksa isi pesan yang diterima, bukan hanya header, centang Terapkan ketentuan ke isi kotak. Ini diperlukan jika salah satu kondisi yang Anda masukkan nanti harus cocok dengan teks dalam email itu sendiri.
  4. Biasanya Procmail akan mengabaikan kasus header saat memeriksa kondisi. Untuk mengubahnya, periksa Pencocokan peka huruf besar/kecil kotak.
  5. Jika Anda ingin Procmail melanjutkan file konfigurasi meskipun tindakan ini cocok, centang kotak *Lanjutkan pemrosesan meskipun kondisi cocok*. Ini dapat digunakan untuk mengirim email ke beberapa file atau folder yang berbeda, dengan mengaktifkan opsi ini untuk semua aturan pengiriman kecuali yang terakhir.
  6. Procmail biasanya akan mengabaikan status keluar dari program tempat email diumpankan. Agar gagal (dan dengan demikian memantulkan pesan) jika program gagal, aktifkan opsi *Tunggu program tindakan selesai, dan periksa hasil*.
  7. Jika program pengiriman yang Anda masukkan membaca dan kemudian mengeluarkan email dengan beberapa modifikasi, centang kotak *Action program is a filter*. Opsi *Lanjutkan pemrosesan meskipun kondisi cocok* juga harus diaktifkan sehingga pemrosesan berlanjut dengan versi pesan yang dimodifikasi. Fitur ini dapat berguna jika Anda telah menulis program yang memeriksa dan menandai pesan dengan menambahkan atau mengubah header, yang kemudian dapat diperiksa dengan tindakan selanjutnya.
  8. Kondisi tindakan bagian formulir adalah untuk memasukkan kondisi yang menentukan pesan mana yang akan dikirimkan oleh tindakan ini. Jika tidak ada yang ditentukan, pesan yang mencapai tindakan akan selalu terkirim, dan jika lebih dari satu yang dimasukkan, semuanya harus cocok agar pengiriman dapat dilakukan. Bagian ini sebenarnya adalah tabel yang dimulai dengan dua baris kosong. Menu di setiap baris menentukan jenis kondisi dan bagaimana teks dalam kotak di sebelahnya ditafsirkan. Opsi yang tersedia adalah:
    • Mencocokkan ekspresi reguler
      Agar kondisi ini cocok dengan header pesan (dan mungkin juga isi pesan) harus cocok dengan ekspresi reguler gaya Perl yang dimasukkan dalam kotak teks. Ingat bahwa ekspresi ini berlaku untuk semua header seolah-olah mereka adalah satu blok teks, jadi Anda harus mendahului nama header dengan ^ untuk menunjukkan awal baris. Misalnya, untuk menangkap pesan yang subjeknya berisi kata foo Anda dapat memasukkan ^Subjek:.*foo.* .
    • Tidak cocok dengan ekspresi reguler
      Jenis kondisi ini berfungsi seperti yang sebelumnya, kecuali cocok dengan pesan yang tidak cocok dengan ekspresi reguler.
    • Mengevaluasi keluaran perintah
      Perintah shell yang dimasukkan dalam kotak teks akan dijalankan, outputnya dibaca oleh Procmail dan kemudian diinterpretasikan lagi sebagai baris tindakan dari file konfigurasi. Jenis kondisi ini sangat kuat karena memungkinkan Anda membuat kondisi yang dibuat secara dinamis - namun, untuk pemfilteran email sehari-hari, Anda mungkin tidak perlu menggunakannya.
    • Periksa status keluar dari perintah
      Jenis kondisi ini cocok jika perintah shell yang dimasukkan memiliki status keluar nol, yang menunjukkan keberhasilan. Ini dapat digunakan untuk mengirim email ke tujuan yang berbeda tergantung pada nama host sistem, waktu atau keberadaan beberapa file.
    • Email lebih kecil dari
      Kondisi akan cocok jika ukuran total pesan lebih kecil dari jumlah byte yang dimasukkan dalam kotak teks yang berdekatan.
    • Email lebih besar dari
      Seperti namanya, jenis kondisi ini adalah kebalikan dari yang sebelumnya.
  9. Setelah Anda selesai memasukkan ketentuan, tekan tombol Simpan tombol. Tindakan baru akan ditambahkan ke daftar di halaman utama, dan akan mulai digunakan pada email masuk. Untuk menambahkan lebih dari dua ketentuan, Anda perlu mengedit ulang tindakan sehingga dua baris kosong lagi muncul di Ketentuan tindakan bagian.


Formulir pembuatan tindakan Procmail

Tindakan yang ada dapat diedit dengan mengeklik entrinya di Tindakan yang harus dilakukan kolom di halaman utama modul, yang menampilkan formulir pengeditan yang sama dengan yang di atas. Dari sini Anda dapat membuat perubahan lalu tekan Simpan untuk mengaktifkannya, atau cukup tekan Hapus untuk menghapus tindakan sama sekali.

Karena urutan tindakan penting, modul memungkinkan Anda untuk mengubah posisinya dalam konfigurasi Procmail dengan panah atas dan bawah di sebelah masing-masing pada halaman utama. Penugasan variabel, blok bersyarat, dan menyertakan file juga dapat dipindahkan dengan cara yang sama.

Dengan mengikuti petunjuk di atas, Anda dapat dengan mudah membuat tindakan yang mengirimkan semua email ke Maildir bergaya Qmail direktori di direktori home pengguna. Meskipun format email ini lebih disukai karena keandalannya yang unggul dibandingkan dengan file tradisional di /var/spool/mail, format ini tidak banyak digunakan kecuali klien email atau server POP3 di sistem Anda tahu cara membacanya. Server POP3 yang hadir dengan sebagian besar sistem operasi mengharapkan email halus di bawah /var/spool/mail, dan karenanya harus diganti atau dikonfigurasi ulang untuk mendukung format atau lokasi email baru. Klien email lain yang membaca file email pengguna secara langsung (seperti Pine, Elm, dan Usermin) dapat dikonfigurasi untuk menggunakan lokasi baru apa pun yang Anda pilih.

Membuat dan mengedit penetapan variabel

Tindakan procmail dapat menggunakan variabel gaya shell dalam kondisi dan tujuan pengirimannya. Misalnya, Anda dapat membuat tindakan yang mengirimkan ke file /mail/$LOGNAME , di mana $LOGNAME adalah nama pengguna pengguna yang dikirimi email. Beberapa variabel (seperti .LOGNAME dan DEFAULT) diatur secara otomatis oleh Procmail, sementara yang lain dapat diatur dalam file konfigurasi untuk digunakan nanti. Anda bahkan dapat mengganti variabel otomatis untuk mengubah perilaku program, seperti tujuan pengiriman default atau shell yang digunakan untuk menjalankan perintah.

Untuk membuat penetapan variabel baru, ikuti langkah berikut :

  1. Pada halaman utama modul, klik tautan *Tambahkan pengaturan variabel baru* di bawah daftar tindakan yang ada. Formulir pembuatan variabel akan ditampilkan.
  2. Pada Nama variabel field masukkan nama variabel yang akan disetel, seperti DEFAULT . Semua variabel otomatis memiliki nama huruf besar, dan variabel yang Anda buat sendiri juga harus demikian. Tidak ada spasi atau karakter non-alfanumerik yang diperbolehkan.
  3. Dalam Nilai field masukkan nilai untuk ditetapkan ke variabel ini, seperti Maildir/ . Nilai dapat mencakup referensi ke variabel lain.
  4. Tekan tombol Buat tombol untuk menambahkan variabel ke daftar di halaman utama.
  5. Gunakan panah atas di sebelah variabel baru dalam daftar untuk memindahkannya ke lokasi yang benar, yang biasanya berada di bagian atas file. Penugasan variabel hanya berpengaruh, jadi satu yang ditambahkan di bagian bawah mungkin tidak memiliki efek apa pun.

Seperti halnya tindakan, variabel dapat diedit atau dihapus dengan mengklik namanya dalam daftar. Variabel juga dapat dipindahkan dengan panah atas dan bawah di sebelahnya. Karena mereka hanya mempengaruhi tindakan dan tugas lain di bawahnya dalam file, Anda pasti ingin memindahkan variabel baru ke dekat bagian atas daftar. Satu ditambahkan dan ditinggalkan di bagian bawah tidak akan berpengaruh (kecuali pada tujuan pengiriman default).

Procmail mendefinisikan dan memungkinkan Anda untuk mengubah beberapa variabel khusus. Nama-nama dan arti yang paling menarik tercantum dalam tabel di bawah ini:

Blok bersyarat dan sertakan file

Blok bersyarat adalah sekelompok tindakan dan penetapan variabel dalam file konfigurasi Procmail yang hanya diproses jika beberapa kondisi cocok. Mereka dapat digunakan untuk membuat serangkaian tindakan yang cukup kompleks, hampir seperti bahasa pemrograman. Modul ini memungkinkan Anda untuk membuat dan mengedit blok bersyarat, tetapi menampilkan isinya hanya sebagai teks file konfigurasi daripada menguraikan tindakan yang dikandungnya. Ini berarti Anda harus terbiasa dengan format file Procmail untuk menggunakannya.

Untuk membuat blok bersyarat, ikuti langkah-langkah berikut:

  1. Klik Tambahkan blok bersyarat baru di bawah daftar tindakan di halaman utama modul.
  2. Dalam kode Procmail yang akan dieksekusi kotak teks masukkan baris file konfigurasi untuk tindakan atau penetapan variabel yang akan diproses jika kondisinya cocok. Segera setelah tindakan apa pun di blok cocok, pemrosesan seluruh file konfigurasi akan berhenti. Namun jika tidak ada yang cocok, pemrosesan akan berlanjut seperti biasa dengan tindakan berikutnya setelah pemblokiran. Lihat halaman manual procmailrc di modul System Documentation untuk detail formatnya.
  3. Isi Ketentuan tindakan seperti yang Anda lakukan untuk tindakan normal, seperti yang dijelaskan dalam Membuat dan mengedit tindakan sebelumnya dalam bab ini.
  4. Tekan tombol Buat tombol untuk membuat blok baru.

Seperti halnya tindakan, Anda dapat mengedit atau menghapus blok bersyarat dengan mengkliknya dalam daftar di halaman utama modul. Seluruh blok juga dapat dipindahkan dengan panah atas dan bawah di sebelahnya.

File include adalah direktif khusus yang memberitahu Procmail untuk membaca dan memproses file konfigurasi terpisah dalam format yang sama seperti /etc/procmailrc. Beberapa program penyaringan spam sebenarnya hanyalah file Procmail yang dapat dimasukkan ke dalam konfigurasi utama Anda. Untuk membuat perintah sertakan, ikuti langkah-langkah berikut :

  1. Klik pada Tambahkan file penyertaan baru link di halaman utama modul.
  2. Dalam Berkas yang disertakan pada formulir yang muncul, masukkan path lengkap ke file konfigurasi lainnya. Anda juga dapat memasukkan jalur relatif, dalam hal ini Procmail akan mencari file tersebut di direktori home dari pengguna Unix yang menjadi tujuan pengiriman email. Saat menangani penyertaan, Procmail akan berhenti memproses sama sekali segera setelah menemukan tindakan yang cocok dalam file. Jika tidak ada yang ditemukan, ia akan melanjutkan pemrosesan tindakan yang muncul setelah penyertaan dalam file konfigurasi utama.
  3. Tekan tombol Buat tombol untuk menyelesaikan proses.

Biasanya termasuk terdaftar di halaman utama modul seperti tindakan dan tugas variabel, dan dapat diedit, dihapus atau dipindahkan. Namun, jika Tampilkan isi dari file yang disertakan? pengaturan diaktifkan pada Module Config halaman modul akan menampilkan tindakan aktual di dalam file sertakan untuk Anda edit atau hapus. Mereka bahkan dapat dipindahkan ke atas dan ke bawah, meskipun hanya di dalam file. Mengaktifkan opsi ini bukanlah ide yang baik jika Anda memiliki file penyertaan yang besar (seperti satu untuk pemfilteran spam) karena akan membuat halaman utama modul menjadi besar dan tidak dapat digunakan.

Isi

Lihat juga

  • Memfilter spam dengan SpamAssassin

Webmin
  1. Server Surat QMail

  2. Siapkan Relai Surat

  3. Layanan OS Linux 'kirim'

  1. Tes Surat PHP sederhana

  2. Pengambilan Surat Fetchmail

  3. Membaca email dari /var/spool/mail/root

  1. Cadangkan Email Evolusi?

  2. Tidak Dapat Menerima Email (Mail Enable)

  3. Kirim email spam ke folder khusus menggunakan postfix