Kurulum
�lk ad�m procmail'in enson s�r�m�n�n
elde edilmesidir. Bu yaz�n�n yaz�m�na ba�land���nda
son s�r�m 3.11pre7 idi.
Program i�in kaynak yaz�l�m�n elde edilmesinden sonra,
kurulum i�in, onun gev�etilmesi ve ��k�ndan ��kar�lmas�
gerekecektir. Bu ama� i�in verilecek g�d�m
tar -xzvf procmail.tar.gz olmal�d�r
Bunu izleyen a�ama Makefile ve config.h
dosyalar�n�n eldenge�irilmesidir. Bu yaz�n�n yaln�zca bir
giri� olmas�ndan dolay� ve bu ilk giri�te nesneleri basit
tutmak amac�yla, bu dosyalar�n bi�imlendirme se�eneklerini
a��klamayaca��z. �lgilenen okuyucu elyordam sayfalar�na ve
kaynaklarla birlikte sunulan kaynakland�rmalara
ba�vurabilir.
Yine de hi� olmazsa Makefile dosyas�nda
BASENAME se�ene�inin varl���ndan s�zetmek yerinde
olacakt�r. Bu se�enekle procmail'in kurulaca�� taban dizini
g�sterebiliriz. Taban dizin ad�ndan, g�sterdi�imiz dizin
bin ve man gibi dizinleri ask�ya
alacakt�r.
Sonunda, ��k�n� derlemek i�in make install
g�d�m�n�n verilmesi gerekir.
Procmail t�m sistem i�in y�klenip sendmail(8)'in
baz� kurallar�yla �a�r�labilece�i gibi baz� kullan�c�lar�n
kendi kullan�mlar� i�in de devreye sokulabilirler.
�kinci durumda kullan�c� procmail kullan�m�n� kendisinin
.forward dosyas�nda, a�a��daki bi�imde bir sat�rla
belirtilecektir:
|IFS=' ' && exec /home/juan/procmail/bin/procmail -f- ||
exit 75 #juan
Bu sat�rda juan adl� kullan�c�n�n procmail'i kendi
HOME �evresel de�i�keniyle belirtilen dizinine kurdu�unu
varsaymaktay�m. Bu �zel sat�r i�in, derleme s�ras�nda
belirtilecek olan BASENAME,
/home/juan/procmail'd�r.
Temel Fonksiyonlar
Procmail standart giri� veriyolundan bilgi okur.
O, kullan�c�n�n kendi HOME adresinde bulunmas� gereken
ve bir bi�imlendirme dosyas� olan .procmailrc
adl� dosyaya bakar. Bu dosya, procmail'e bir mesaj�n
okunmas�ndan sonra ne yapaca��n� s�yleyen baz� kurallar
tan�mlar. O, mesaj�n saklanmas�, g�zard� edilmesi,
kendili�inden yan�tlanmas�, vs.. gibi konularda karar
verebilmek i�in mesaj ba�l���nda baz� katarlar� kontrol
etmek �zere y�nlendirilebilir.
Procmail, gelen ya da bir dosyada depolanan posta ile
otomatik olarak ilgilenmemize izin verir.
Bi�imlendirme
Kullan�lan bi�imlendirme dosyas� .procmailrc olup
HOME i�ine yerle�tirilmeldir.
# ile ba�layan her sat�r bilgilendirme ama�l�
olup eylem ger�ekle�tirme niteli�i yoktur.
:0 veya :0: ile ba�layan sat�rlar,
procmail'e bir mesajla ne yapaca��n� s�yleyen yeni bir
kural�n ba�lang�c�n� g�sterirler.
* ile ba�layan sat�rlar bir kural�n uygulanmas�
i�in sa�lanmas� gereken bir ko�ulu g�sterirler. Bu,
procmail'in hangi mesajlar�n kurala g�re i�lenmesi
gerekti�ini saptamak i�in kulland��� d�zenektir.
Geriye kalan, yani, :, veya * ile
ba�lamayanlar g�d�m olarak nitelendirilirler. Di�er bir
deyi�le, ko�ulu sa�layan mesaja procmail taraf�ndan
uygulanacak eylemi nitelendirirler. Baz� olas� eylem
ya da g�d�mler aras�nda, bir mesaj�n silinmesi, mesaj
y�nlendirimi, mesaj�n saklanmas�ndan s�zedilebilir.
Bir .procmailrc dosyas�nda g�sterilmesi gereken
ilk �eyler �evresel de�i�kenlerdir. Size ait .procmailrc
dosyas�nda tan�mlaman�z� sal�k verebilece�im de�i�kenlerden
baz�lar� a�a��da sunulmaktad�r.
MAILDIR
Procmail'in posta mesajl� dosyalar� saklayaca�� dizini
g�sterir. Bu de�i�ken genellikle $HOME/mail ya da $HOME/Mail'e
y�nlendirme yapar. Bunlardan hangisinin ge�erli olaca��
kullan�lan posta okuyucusuna ba�l�d�r.
LOGFILE
Procmail'in, ger�ekle�tirilen haberle�melerin t�m�yle ilgili
kay�tlar�n tutuldu�u kay�t dosyas�n�n ad�n� belirtir.
SENDMAIL
Otomatik olarak mesaj yan�tlamada kullan�lacak olan sendmail'in
nerede bulunaca��n� belirtir.
FORMAIL
formail'in nerede bulunaca��n� g�sterir. Bu program, procmail
ile birlikte da��t�l�r ve amac� posta ba�l�klar�n� yeniden
d�zenlemek ya da bir mesaj� g�nderim veya depolama �ncesinde
yeniden bi�imlendirmektir.
DEFAULT
Tan�mlanan kurallardan herhangi birinin procmail taraf�ndan
uygulanamamas� durumunda bir mesaj�n sakland���
dosyad�r.
�evresel de�i�kenler, .procmailrc i�inde herhangi bir
yerde tan�mlanabilirler. E�er bir de�i�ken = simgesini
izleyen bir de�erle birlikte g�z�km�yorsa, devre d���
b�rak�l�r.
Kurallar iki grupta toplanabilirler: Eylemlerinin uygulanmas�
sonras�nda mesaj g�nderimine yola�anlar ve yola�mayanlar.
�lk gruptaki kurallar basittir. Onlar�n eylemlerinin
ger�ekle�tirilmesi sonras�nda bu mesaja ba�ka bir kural�n
uygulanmayaca�� varsay�l�r ve b�ylece mesaj g�nderilir.
Mesaj�n g�nderilmedi�ini varsayan ikinci grup kurallar�n
kullan�lmalar� �ok yararl�d�r. Bu durum, mesaja g�nderim
�ncesinde, �zelikle �ok say�da kural�n uygulanmas� ya da
eylemin ger�ekle�tirilmesi istendi�inde �nem kazan�r.
Bir kural yaz�m� i�in genel yap� a�a��daki gibidir:
:0 [options] [ : [exclusion file] ]
* condition 1
* condition 2
.
.
.
* condition N
command
�imdi bu yap�y� par�a par�a ��z�mleyelim. Her kural
:0 ile ba�lamal�d�r. Kural� a�a��daki se�eneklerden
herhangi biri izleyebilir:
H Ko�ul posta ba�l���na uygulan�r.
B Ko�ul mesaj g�vdesi i�inde aran�r.
D Ko�ul soru�turuldu�unda k���k ve b�y�k harfler
ay�rdedilebilir olarak nitelenecektir.
A Bu kural, bir �nceki uyguland���nda uygulanacakt�r.
a A'ya benzer, ama bir �nceki kural yan�lg�s�z
uygulanm�� olmal�d�r.
E Bu kural, bir �nceki kural uygulanmad���nda
�al��t�r�lacakt�r.
e Bu kural, bir �nceki kural�n �al��t�r�lm�� oldu�u ama
bir yan�lg� belirterek devre d��� kald��� durumlarda
�al��t�r�lacakt�r.
h Mesaj ba�l��� g�d�me aktar�l�r.
b Mesaj g�vdesi g�d�me aktar�l�r.
f G�d�m bir s�zge� olarak yorumlan�r.
c Mesaj�n bir karbon kopyas�n�, cc,
olu�turur. Mesaj� g�nderimiyle ilgili bir kural�n bu se�enekle
�al��t�r�lmas� durumunda g�nderimle ilgili bir i�lev yerine
getirilir daha sonra di�er kurallar mesaj�n karbon kopyas�na
uygulanabilir.
w G�d�m�n �al��mas�n�, g�d�m ��k�� d�zg�s�n� alana
dek bekler.
W �nceki se�enek gibidir ama yan�lg� durumunda herhangi bir
ileti yay�nlamaz.
i Olas� yaz�m yanl��lar�n� g�zard� eder.
r �letiyi oldu�u gibi yazar. Onun sonunun bo� bir sat�rla
bitip bitmedi�ini s�namaz.
E�er herhangi bir se�enek verilmeyecek olursa, benimsenen
e�ilim, ko�ulun posta ba�l��� �zerinde s�nanmas�d�r (se�enek
H ). G�d�m, standart giri� veriyolundan, iletinin hem
ba�l���n� hem de g�desini al�r (se�enek h ve b ). Bu durumda
b�y�k ve k���k harf ay�r�m� yoktur.
:0'den ve olas� se�eneklerden sonra, ikinci bir
: gelebilir. Bu durumda iletinin yaz�laca�� dosyan�n
iki s�re� taraf�ndan ayn� anda dosyaya yaz�m� engellemek
amac�yla dosya kilitlenmelidir. Kilit olarak kullan�lacak
dosya, istenirse, kullan�c� taraf�ndan belirlenebilir.
Daha sonra ko�ullar, her sat�ra bir tane olacak ve ko�ul
�ncesinde * karakteri kullan�lacak bi�imde verilir.
Bir iletinin ba�l�k ya da g�vdesinde bi katar� bulabilmek
i�in ko�ullar genellikle d�zg�n deyimler olarak
yaz�l�rlar. D�zg�n deyimler di�erlerinin aras�nda a�a��daki
simgeleri kullan�rlar:
^ Sat�rba��.
$ Sat�rsonu.
. Sat�rba��nad�n�� d���nda herhangi bir simge
* S�f�r ya da daha �ok kez.
+ Bir ya da daha �ok kez.
? S�f�r ya da daha �ok kez.
[a-z] Simge b�lgesi, bu �rnekte a dan z ye.
[^a-z]a dan z ye b�lgesi d���nda herhangi bir simge.
a|b 'a' ya da 'b'
Ko�ullardan sonra tek bir g�d�m gelir. E�er g�d�m�n ilk
simgesi a�a��dakilerden birisiyse o zaman �zel bir davran��
sergilenir:
! �leti belirtilen posta adreslerinin t�m�ne birer birer
y�nlendirilir.
| E�er bu simge bir �al��t�r�labilen taraf�ndan izlenirse,
ko�ulun sa�lanmas� durumunda bu �al��t�r�labilen ko�ulur.
Simgeyi hi�bir �eyin izlememesi durumunda iletinin tam metni
standart ��k�� veriyoluna g�nderilir. Simgeyi bir de�i�ken ad�
izleyecek olursa o zaman da belirtilen g�d�m�n sonucu bu
de�i�kende saklan�r.
Postalama Dizelgeleri
Procmail'in �ok yararl� olabildi�i yerlerden biri de
postam�z�n i�letimidir. �� farkl� Linux postalama dizelgesinin
s�rd�r�mc�s� oldu�umuzu varsayal�m. Her bir dizelge orijinin
adresiyle kimliklendirilir. S�zgelimi, a�a��daki adreslere
sahip oldu�umuzu varsayal�m
[email protected]
[email protected]
[email protected]
Ola�an durumlarda bu postalama dizelgelerinden gelen iletiler
ayn� posta kutusuna birlikte ula��rlar ve bir�ey yap�lmayacak
olursa karma��k bir halde al�konulurlar. Dolay�s�yla, postalar�n
geldik�e s�n�flanmas� ve uygun dosyalarda saklanmas� i�leri
kolayla�t�racakt�r.
Procmail bu sorunu kolayl�kla ��zebilir. Bu ama�la,
.procmailrc adl� dosyay�, a�a��daki basit kurallarla,
kullanarak bir Linux postalama dizelgesinden gelen postalar�m�z�
s�n�fland�rabiliriz:
:0
* ^From.*[email protected]
l-linux
:0
* ^From.*[email protected]
linux-mx
:0
* ^From.*[email protected]
linux-security
Kurallardan birini dikkatlice inceleyelim. E�er bir
kural�n i� �al��mas�n� anlayabilirsek gerisini anlamak
daha kolay hale gelir. ��nk�, temel d�zenek daima
ayn�d�r.
�lk �nce yeni bir kural�n ba�lad���n� belirten :0
katar� aran�p bulunur. Ba�ka se�enek bulunmad���ndan procmail
bu kural i�in benimsenmi� se�eneklerini alacakt�r: b�y�k ve
k���k harfler ay�rdedilebilir olacak, ko�ul yaln�zca posta
ba�l���na uygulanacak, g�d�m hem ba�l�k hem de iletinin
g�vdesini alacakt�r.
�zleyen sat�rda ko�ul aran�p bulunur. �nceden s�zedildi�i
gibi bu daima ger�ekle�tirilebilir, ��nk� ilk simgesi
* dir. Ko�ul ise a�a��daki d�zg�n ifadedir:
^From.*[email protected]
^From altkatar� procmail'e From altkatar�yla
ba�layan sat�rlar�n saptanmas� gerekti�ini s�yler.
Daha sonra gelen .* karakteri, herhangi bir say�da
karakter anlam�na gelir. Daha �nceden g�rd���m�z �zere, bir
d�zenli ifadedeki "." simgesi herhangi bir karaktere
e�de�er olup * s�f�r ya da daha �ok anlam�na gelir.
Dolay�s�yla, .*, From den sonra s�f�r ya da
daha �ok karakter bulunabilir.
Bundan sonra da, mesaj�n geldi�i yerin adresi olan
[email protected] gelir.
D�zenli ifadeler hakk�nda bir par�a daha d���nerek,
a�a��daki sat�rlar bu kuralla tan�nacakt�r.:
From: [email protected]
From:[email protected]
FROM [email protected]
Bu kuralla bu adresten ve ba�ka yerlerden gelen mesajlar
ay�rdedilebilir. Bu durumda elde olan mesajla ne
yapaca��z?.
�zleyen sat�r g�d�m(ya da eylem) olup mesajla ne yap�laca��n�
g�sterir. Bu durumda, mesaj, saklanaca�� yer olan
linux-mx adl� dosyaya g�nderilir. Dosyan�n a��k
eri�imyolunun belirtilmedi�i durumlarda, $MAILDIR
�evresel de�i�keninin belirtti�i eri�imyolu kullan�l�r.
Farkl� dizelgelerden ula�an iletiler, k�kenlerine g�re
(alandan), �e�itli dosyalara da��t�l�rlar.
�zdevimli Yan�tlama
Procmail'in yararl� olabilece�i di�er bir durum da
�zdevimli (kendili�inden) yan�tlamad�r. S�zgelimi, toplumsal OEG
anahtar�n�z�, e-posta ile istemi� bulunan herkese
g�ndermek istemeniz durumunda, procmail'in ne kadar
etkin oldu�u ortaya ��kacakt�r.
Bu ama�la, OEG toplumsal anahtar�m�z i�in bir dilek�e gibi
d���n�lebilecek ve konusu i�inde *PGP katar� bulunan bir kural
g�ndeme getirilebilir. B�yle bir kural a�a��daki bi�imde
yaz�labilir:
0:
* ^Subject.*PGP
| (formail -r ; cat $HOME/key.asc) | sendmail -t
Ayn� d���nce, tatile gitti�imizi ve onlardan gelebilecek
e-posta iletilerini tatil d�n��� yan�tlayaca��m�z� ileti
sahiplerine bildirmeye y�nelik bir program yazmam�z durumuna da
uygulanabilir:
0:
| (formail -r; cat $HOME/vacations.txt) | sendmail -t
Son durumda, t�m iletilerin ayn� not i�ererek
g�nderilmesinden dolay� bir ko�ul bulunmamaktad�r.
�zdevimli Yan�tlamalarda Sonsuz D�ng�lerden Ka��nma
�nceki �rneklerde postan�n �zdevimli (kendili�inden)
yan�tlanmas� durumunda ortaya ��kabilen sonsuz d�ng�lerden
ka��nmak i�in herhangi bir �aba g�sterilmemi�tir.
K�keni kendi E-posta adresimiz olan bir ileti durumunda
program o adrese yan�tlama yapacak ve yan�t bize d�necektir.
Bu ileti bir kez daha yan�tlanacak ve bu s�re� bir sonsuz
d�ng�ye d�n��ecektir. Bu durumdan ka��nmak i�in ba�l��a
iletinin yan�tlanm�� durumda bulundu�unu belirten bir sat�r
daha eklenmelidir. Bu do�rultuda, formail'in -A
se�ene�i kullan�labilir:
formail -r -A"X-Loop: [email protected]"
Bu durumda [email protected] sizin kendi e-posta adresiniz
olacakt�r. B�ylece, yan�tlama i�in ba�l�k olu�turulurken,
ileride yeni nir kuralla s�nanabilmek i�in X-Loop
sat�r� eklenir:
:0
* !^X-Loop: [email protected]
| (formail -r -A"X-Loop: [email protected]" ;
cat $HOME/vacation.txt) | sendmail -t
Bu kural sonsuz bir d�ng� olu�mas�n� engelleyecektir.
��nk�, ba�l�kta X-Loop sat�r� i�eren bir ileti
ko�ulu sa�lamayacak ve sonu�ta procmail taraf�ndan
yan�tlanmayacakt�r.
Dosyalar�n ��z�mlenmesi
.procmailrc'miz i�in Bir di�er ilgin� kural da
uuencode(1) ile gizyaz�lanm�� olan gelen iletinin
kendili�inden ��z�mlenmesidir. Kural s�yle verilebilir.:
:0 B
* ^begin 644 .*
{
MAILDIR=$HOME/files
:0
| uudecode
}
Burada B se�ne�inin kullan�m�yla kural�n
ko�ulunun yaln�zca ileti g�vdesi �zerinde s�nanmas�
sa�lanm�� olmaktad�r.
E�er kural "begin 644" katar�yla ba�layan bir sat�r
bulursa, bunun anlam� uuencode(1) ile gizyaz�lanm��
bir dosyan�n ba�lang�c� bulunmu� demektir.Bu durumda,
MAILDIR, �evresel de�i�keninin devreye sokulmas�,
ya da di�er bir deyi�le bu de�i�ken taraf�ndan
g�sterilen dizine ge�ilme s�zkonusu olur. O andan ba�layarak,
t�m bas�m ya da g�sterim eylemleri g�sterilen taban dizini
alarak ger�ekle�tirilecektir.Bizim durumumuzda al�nan
iletilerin $HOME/files dizininde saklanmas�
s�z konusu olacakt�r..
Bunun ard�nda ko�ulsuz bir kural varolup iletiyi
��z�mlemek amac�yla uudecode(1)'ye borular.
�zg�n dosya $HOME/files dizinine gidecektir.
Sonu�
Bu k�sa giri�ten sonra, procmail'in �ok yetenekli oldu�u
ve postan�z�n i�letimini kolay ve etkin olarak yapabilmenize
yard�mc� olaca�� a��k bir bi�imde g�zler �n�nen serilmi�
bulunmaktad�r. D�zenli ifadeler ve kurallarla deneyler
yapman�z� ve bunlar� gereksinimlerinize uyarlaman�z�
�nermekteyim. B�ylelikle, bu k�sa giri� yaz�s�nda
de�inemedi�im ve daha ileri d�zeylere giden procmail
olanaklar� �ok daha ilgin� olanaklar sunabilecektir.
|