Kullanım
Önceki Procmail ile Eposta Filtreleme NASIL Sonraki
Kullanım
Sistem genelinde iletileri süzme
# touch  /etc/procmailrc
/etc dizininin altında procmailrc adında dosyamızı oluşturduk. Bu dosyanın içine aşağıdaki satırları yazın:
# Hata ayıklaması yapacağınız zaman 'yes' yazın.
VERBOSE=no


# Hata ayıklaması yapacağınız zaman ## karakterlerini silin;
# olay kayıtları fazla gelirse 'no' yazın.
## LOGABSTRACT=all

# Kendi dizininizi kullanmak isterseniz $HOME/Msgs yazın
# Mutt ve elm $HOME/Mail kullanır
# Pine $HOME/mail kullanır
# Netscape Messenger $HOME/nsmail kullanır
# Bazı NNTP istemcileri, örneğin slrn ve nn, $HOME/News kullanır
# maildir biçemindekiler çoğunlukla $HOME/Maildir kullanır
MAILDIR=$HOME/mail       # Bu dizin mutlaka mevcut olmalı!

# procmail ile ilgili dosyaların saklanacağı dizin
##PMDIR=$HOME/Procmail
PMDIR=/etc/Procmail
# Olay kayıtlarının tutulmamasını istiyorsanız
# LOGFILE satırının başına ## koyunuz (önerilmez)
LOGFILE=$PMDIR/log
INCLUDERC=$PMDIR/Rc/subject.rc
INCLUDERC=$PMDIR/Rc/spamlist.rc
INCLUDERC=$PMDIR/Rc/body.rc
INCLUDERC=$PMDIR/Rc/trailer.rc
Yukarıdaki MAILDIR=$HOME/mail ifadesini ev dizininizde bulunan posta kutunuzun biçemine göre değiştirin.Örneğin bende /home/genco dizininde mail adında bir dizin bulunduğu için bu ifade olduğu gibi kalıyor.
PMDIR değişkenini, procmail'in kullanacağı dosyaların bulunduğu dizin adına atayalım. Yukarıda bizim tanımımız PMDIR=/etc/Procmail şeklinde.
INCLUDERC değişkeni, /etc/Procmail/Rc dizini içindeki süzme işlemini gerçekleştirecek dosyalarımızı gösteriyor. Her bir kural için ayrı bir dosya oluşturarak sistemimize modüler bir yapı kazandırıyoruz. Böylece ileride bir kuralı çıkarmak istediğinizde procmailrc dosyasından bu satırı silmeniz yeterli olacaktır.
Dizinlerimizi ve dosyalarımızı oluşturalım.
# mkdir /etc/Procmail
# touch /etc/Procmail/log
# mkdir /etc/Procmail/Rc
# touch /etc/Procmail/Rc/subject.rc
# touch /etc/Procmail/Rc/spamlist.rc
# touch /etc/Procmail/Rc/body.rc
# touch /etc/Procmail/Rc/trailer.rc
# mkdir etc/Procmail/Filtered
/etc/Procmail/Rc/subject.rc
:0:
  * ^Subject:.*\<I love you\>

/etc/Procmail/Filtered/subject
subject.rc dosyasının içine yukarıda satırları yazalım. Bu dosya yardımıyla procmail, sisteminize gelen epostaların başlığındaki subject satırını tarayarak, içinde "I love you" olan iletileri /etc/Procmail/Filtered/subject adındaki dosyaya gönderir.
Örnekler üzerinden gidilip birkaç örnek sonra bu dosyalardaki sözdizimi ile ilgili açıklama yapılacak.
/etc/Procmail/Rc/spamlist.rc
FROM_=`formail -rt -xTo: \
  | expand | sed -e 's/^[ ]*//g' -e 's/[ ]*$//g'`



:0

*  $ ? echo ${FROM_} | grep ${FROM_} '/etc/Procmail/black.list'



/etc/Procmail/Filtered/spam
spamlist.rc dosyasına da yukarıdaki satırları yazalım. Bu satırlar ne anlatıyor?
Gelen iletiden from bilgisi formail programı ile alınıyor. (Bende formail programı var mı diye şüphe içerisindeyseniz, düşünmeyin. Procmail programını kurarken aynı zamanda onu da yüklediniz.) Daha sonra /etc/Procmail/black.list dosyasında bu from bilgisi var mı yok mu aranıyor. Eğer bulunursa bu ileti, inbox yerine /etc/Procmail/Filtered/spam dosyasına yazılıyor.
Bu eposta adresinin spam olduğuna kesin eminseniz spam dosyası yerine /dev/null'ın engin derinliğinede gönderebilirsiniz.
/etc/Procmail/black.list dosyasını oluşturup bu dosyanın içine sisteminizi rahatsız eden eposta adreslerini kayıt edebilirsiniz. Bu sayede kendi spam listenizi oluşturabilirsiniz.
/etc/Procmail/Rc/body.rc
:0 B:

* I send you this file in order to have your advice
/etc/Procmail/Filtered/dustbin
body.rc dosyasının içine yazacağınız yukarıdaki satırlar, gelen iletilerin gövdesini tarayarak içinde "I send you this file in order to have your advice" yazan satırı bulursa iletiyi /etc/Procmail/Filtered/dustbin adlı dosyaya atacaktır. Bu satır bildiğiniz gibi geçenlerde birçok kimseyi rahatsız eden virusun gövdesinde yazıyordu.
Benim dustbin dosyamın boyutu aradabir artıyor :))
/etc/Procmail/Rc/trailer.rc
:0 fb
* ? test -r /etc/trailer.txt
| cat - ; \
  sed   -e "s/\$//g" \
      </etc/trailer.txt
trailer.rc dosyasının içeriğide yukarıdaki gibi. Peki bu dosya ne yapar? Aslında pek bir şey yapmaz. Gelen her iletinin en alt kısmına sizin belirlemiş oldugunuz satırları ekler. Giden iletilere ekleyebilseydi daha iyi olurdu.:)
Bunun çalışması için /etc/trailer.txt dosyasını oluşturalım ve içine her iletiye eklemek istediğimiz satırları yazalım.
Bir kullanıcıya gelen iletileri süzme
Süzme işlemini sadece bir kullanıcı için yapacaksak kullanıcının ev dizininde .procmailrc adında bir dosya oluşturmamız yeterli olur.
Bu dosyanın içine yukarıdaki *.rc uzantılı dosyaların içeriklerini yazmamız süzme işini başlatır. Bunun haricinde başka bir şey yapmamıza gerek yok.
Bu belgede bulunan  RC dosyalarındaki kuralların haricinde örnekler görmek isterseniz, http://www.uwasa.fi/~ts/info/proctips.html adresinde 40 adet örnek bulunmaktadır.
Procmail .rc dosya biçemi hakkında
Sözdizimi                        Anlam
----------------------------------------------------------------------------
:0                               Kuralı başlatır.

:                                rc dosyasının bulunduğu yerde lock dosyası
                                 oluşturur.

*                                koşul ifademize başlamamızı sağlar.

^Subject:                        başlıkta subject ile başlayan satırı arar.
                                 ^TO_ yazarsanız to satırını arar.

/etc/Procmail/Filtered/subject   işlem gören iletinin hangi dosyaya gideceğini
                                 belirtir.
Önceki Üst Ana Başlık Sonraki
Kurulum Başlangıç Sıkça Sorulan Sorular
Bir Linux Kitaplığı Sayfası