İstenmeyen Epostayı Engelleme
ve Cep Telefonundan Epostayla Sorgu


İlker Fıçıcılar
ilkerf@geocities.com
Temmuz 2000
http://ilkerf.tripod.com/teknik/


Gelen epostaları cep telefonundan öğrenmek.
Spam, reklam, propaganda mektuplarını engellemek.
Cep telefonuyla WAP olmadan borsa, sinema, sözlük, vs. bilgileri.
Ve hatta cep telefonunuzdan evdeki bilgisayarın ve cihazların denetimi...
 
 Bu yazıda UNIX üzerinde sendmail ve procmail kullanarak istenmeyen (spam,
junk, reklam, mail-bomb) e-postaların nasıl engelleneceği anlatılıyor.
Kullanılan yazılıma yapılan ufak bir ek ile de cep telefonundan istenen
bilgilere ulaşım sağlanıyor. Örneğin WAP desteği olmadan da borsa ve sinema
bilgilerine erişmek, bilgisayarı kontrol etmek gibi.

 UNIX sistemlerinde mektup trafiğini yönetmek için kullanılan programlardan
sendmail'in aliases desteğini mektup işlemcisi procmail ve formail ile
kullanarak çeşitli uygulamalar geliştirilebilir. Örneğin mektupları gönderene
veya içeriğine göre ayrı ayrı mektup kutularına koyabilir, engelleyebilir bir
başka adrese yönlendirebilir, ya da mektup içeriğini işleyip, yorumlayıp
otomatik bir yanıt verdirebilirsiniz.

 Önce basit bir alias kullanımı. UNIX'te kendi kullanıcı dizininizde ($HOME)
.forward dosyasını oluşturup içine bir eposta adresi girerseniz, sizin o unix
hesabınıza gelen mektuplar koşulsuz olarak girdiğiniz yeni e-posta adresine
yönlendirilir. 
 Örneğin normalde kullandığım UNIX makinadaki e-posta adresim ilker@gk.ods.org
olsun. Eğer
echo ilkerf@geocities.com > $HOME/.forward
dersem, artık ilker@gk.ods.org adresine atılan bütün epostalar
ilkerf@geocities.com adresine gönderilir.

 Sendmail .forward dosyasını bu tür yönlenme ve komut işleme amaçlı olarak
mektup geldiğinde kontrol eder. Şimdi, procmail ile epostalarımızı
işleyeceksek .forward dosyasına aşağıdaki tek satırı girmeliyiz:

"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #ilker"

 Bu satırda, procmailin bulunduğu dizine ve #ilker yerine kendi kullanıcı
adınızın kullanılmasına dikkat edilmeli. procmail'in bulunduğu yeri 
"which procmail" diyerek ve kullanıcı adınızı da "whoami" adlı komutla
öğrenebilirsiniz. Ayrıca o satırdaki bütün noktalama işaretlerini, tırnakları
aynen girmelisiniz. Tek tırnaklar da ters yöne bakıyor.

 Artık size bir mektup geldiğinde sendmail programı .forward dosyasını
okuyacak ve gelen mektubu procmail programına gönderip "al bunu ne yaparsan
yap" diyecek. Procmail ise ne yapması gerektiğini öğrenmek için ana
dizininizdeki ".procmailrc" dosyasını okuyup işleyecektir.

  Bu noktada daha ayrıntılı ek bilgi için "man sendmail", "man mailaddr", "man
forward", "man procmailrc", ve "man procmailex" diyerek ilgili komutların
kılavuz dosyalarını okuyabilirsiniz.

 .procmailrc dosyası "recipe" denen komut gruplarından oluşuyor. Bu
recipe'ler  belli koşullara göre ne yapılması gerektiğini belirliyor. Her
recipe ":0" ile başlıyor, "0" dan sonra bir ":" varsa o recipe için bir
lockfile oluşturuluyor, "*" varsa koşul değerlendiriliyor ve sonuç olumluysa
sıradaki satır işleniyor. Birden çok koşul varsa hepsinin doğru olması
durumunda son satır işleniyor. Eğer son satır "!" ile başlıyorsa gelen mektup,
koşul geçekleşmişse, "! "'den sonra gelen adrese gönderiliyor. Eğer "|" ile
başlıyorsa da mektup "| "dan sonraki komuta gönderiliyor. Bunlar yoksa son
satırdaki mektup kutusuna koyuluyor gelen eposta. Mektup kutularının bulunduğu
dizini belirtmek için "MAILDIR" değişkenini kullanıyoruz.
 Basit bir örnek .procmailrc dosyası oluşturursak:

VERBOSE=off
MAILDIR=/home/ilker/Mail
:0:
* ^FROM.*root@gk.ods.org
! berker@gk.ods.org

:0 E
! root@gk.ods.org

 Bu dosyada, durum raporu istemediğimizi "VERBOSE=off", oluşturulacaksa mektup
kutularının   "/home/ilker/Mail" dizinine konulacağını, ve mektup root'tan
geldiyse bu mektubun berker'e yönlendirilmesini, diğer mektupların ise root'a
yönlendirilmesi gerektiğini söylüyoruz.  Buradaki ":0 E" satırındaki "E" harfi
o recipe'nin önceki recipe gerçekleşmediği zaman değerlendirileceğini
söylüyor. Bu şekilde if-then-else yapısını kurmak mümkün. "*" dan sonrakilerde
ise: "^" ile satırın başının "FROM" olması gerektiğini ".*" ile ise aradaki
harflerin önemsiz olduğunu, ve "root@gk.ods.org" ile de satırda bir yerde
bunun geçmesi gerektiğini belirtiyoruz.

 Bir başka örnek ile de istemediğimiz birinden gelen mektubu silelim:

VERBOSE=off
:0:
* ^From.*net-pa@netpa.de
/dev/null

:0 E
! ilkerf@geocities.com

 Yukarıdaki kısa örnek .procmailrc dosyası "net-pa@netpa.de" adresinden gelen
mektupları silip, diğerlerini ilkerf@geocities.com adresine gönderiyor.
 Burada quios.com'dan alınan adresin bir özelliği var. Quios'daki q-mail
servisi gelen mektupların kimden geldiği bilgisini ve konusunu cep
telefonunuza yönlendiriyor. http://www.quios.com/ adresinden üye olup bu
servisi kullanmak mümkün. Böylece size gelen mektuplardan cep telefonunuz
yoluyla da haberdar olabiliyorsunuz.

 Eğer birden çok adresten gelen mektupları engellemek istiyorsak yukarıdaki
gibi her adres için bir recipe yazıp bunları alt alta koymalıyız. Ama bunu
birçok adres için elle yapmak can sıkıcı olur, hem bizim bilgisayarımız var,
bu angaryayı ona yüklemeninse sakıncası yok.

 İsteğimize göre bir .procmailrc dosyasını oluşturtmak için kısa bir UNIX
shell scripti yazalım. Bu script kısaca .procmailrc dosyasının değişmeyen
kısımlarını ve engellenecek adresler listesinin bulunduğu dosyayı kullanarak
oluşturduğu recipe'leri birleştirsin. "----" cizgileri arasındaki satırları
kesip "epostaket" isimli bir dosyaya kaydedip "chmod 755 epostaket" diyerek,
istediğimiz script'i oluşturabilirsiniz:

------------------aşağıdan itibaren kesin-----------------
#!/bin/sh
#
# epostaket
#
# e-posta'lari adres ve icerige gore engellemek icin
# .forward ve .procmailrc dosyalari olusturumu.
#
# Ilker Ficicilar
# ilker@quios.com 
# ilkerf@boltblue.com
# Temmuz 2000
#
#
cat < forward
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #ilker"
EOF1
cat < procmailrc
# procmail islem dosyasi
# epostaket tarafindan otomatik olarak olusturulmustur.
#
# epostaket programi icin: http://ilkerf.tripod.com/teknik/
#
#  Ayrintili durum bilgisi     
VERBOSE=off

#  Kullanilacaksa mektup kutularinin dizini ( pine icin mail elm icin Mail
# ve netscape icin nsmail dizini)

MAILDIR=$HOME/Mail

## log ve rc dosyalari icin dizin adI
#PMDIR=$HOME/.procmail

#LOGFILE=$PMDIR/log

EOF2

echo ":0:" >> procmailrc
cat bloke | while read qw
do
echo "* ^From.*"$qw
echo "/dev/null"
echo
echo ":0 E"
done >> procmailrc

echo "! ilkerf@geocities.com" >> procmailrc
echo >> procmailrc

----------------yukarısı epostaket dosyasına ait----------------

  Bu shell scripti çalışabilmek için içinde eposta adresleri olan ve bulunulan 
dizinde duran "bloke" isimli dosyaya gereksinim duyuyor. Ayrıca
programın sonundaki eposta adresini de sizin yönlenme yapılacak adresinizle
değiştirmelisiniz.  
 Birkaç spamcının adresinin bulunduğu örnek bloke dosyası şöyle:

------------aşağısı bloke adlı dosyaya konacak----------
admin@anashop.com
ali_tokmen@hotmail.com
callback@turk.net
dtk@hosting4us.com
ftaa@hosting4us.com
grassroots@hosting4us.com
grassroots@turkishforum.com
iletisim@cekirdeksanat.com
koksal@turkishforum.com
mel@melsoft.com.tr
net-pa@netpa.de
promima@turk.net
sibel@hosting4us.com
ttimes@hosting4us.com
ttimes@turkishtimes.com
-----------yukarısı bloke dosyasına ait---------------

  Bu dosyayı mektup almak istemediğimiz kişilerin eposta adresleri ile
doldurup epostaket scriptini çalıştırdığımızda, bulunduğumuz dizinde
"procmailrc" adında bir dosya oluşturulur. Bunu kullanmak için ana dizininize
".procmailrc" adıyla kaydetmelisiniz:

cp procmailrc $HOME/.procmailrc
 
 Oluşturulan bu dosyanın recipe kısmı aşağıdaki gibi görünüyor:

:0:
* ^From.*admin@anashop.com
/dev/null

:0 E
* ^From.*ali_tokmen@hotmail.com
/dev/null

:0 E
! ilkerf@geocities.com


 Birkaç deneme yaparak .forward ve .procmailrc ile oluşturduğunuz sistemin
çalışıp çalışmadığını sınamakta fayda var. Kendinize bir mektup atarak veya
kendi adresinizi de bloke ederek bunu deneyebilirsiniz.

 Son olarak bu procmailrc dosyasıyla biraz oynayıp cep telefonumuzla bilgi
elde etmeye çalışalım. Amacımız, procmail ile işlenebilecek bir mektup atmak
ve sistemin quios'taki adresimize Subject: kısmında istediğimiz bilgiler
bulunan bir mektup yollamasını sağlamak. http://www.quios.com/ 'a üye
olduğumuzda yeni bir eposta adresimiz oluyor, ve bu adrese gönderilen her
mektubun From: ve Subject: kısımları cep telefonumuza da gönderiliyor.
 Cep telefonundan SMS ile eposta da atabildiğimize göre, SMS ile bilgi
sorgulaması yapabiliriz.
 Telsim'de eposta göndermek için  "adres(konu) mesaj" şeklinde (tırnaklar
yok) bir SMS hazırlayıp 7557'ye gönderiyoruz. Turkcell için de eposta
göndermenin yolu var,  ama bendeki yöntem artık işlemiyor, işleyen bir numara
bulup deneyebilirsiniz.

 Ben şimdilik borsa, ve döviz bilgileriyle birkaç sinemada oynayan filmleri bu
yolla öğreniyorum. Örneğin finans bilgileri için tek yaptığım:

ilker@gk.ods.org(k-piyasa)

diye bir SMS hazırlayıp, bunu 7557'ye yollamak. .procmailrc tarafından
işlenecek komutu konu (Subject:) kısmında gönderiyorum, dolayısıyla mektubun
(SMSnin) mesaj kısmı boş.

 Ne yapacağımızı belirlediğimize göre, artık .procmailrc için bir recipe
hazırlayabiliriz. Bu recipe Subject: kısmında  "k-piyasa" yazan bir mektup
geldiyse, bu bir yanıt mektubu veya sendmail daemonundan gönderilmediyse,
ayrıca sonsuz döngüyü engellemek için, kendi hesabımızdan da gönderilmediyse,
"piyasa" adlı scripti çalıştıracak. Gerekli bilgileri bulup, ayıklayıp,
Subject: kısmında göndermek ise bu "piyasa" adlı scriptin işi olsun. Şimdi
kısaca kullanacağımız recipe'i görelim:

:0 E
* !^From filker
* !^Subject:.*Re:
* !^FROM_DAEMON
* ^Subject:.*k-piyasa
| /users1/filker/bin/piyasa

  Burada dört koşul birden sağlandığında tam yeri ile belirtilen "piyasa" adlı
script çalıştırılıyor. Siz "piyasa" scriptini nereye koyduysanız tam yeri ile
belirtmelisiniz. "* !" 'taki "!" işareti ise koşulu tersine çevirmek için
mantıksal "değil" işleci olarak kullanılıyor. Bu recipe yukarıdaki
örneklerdeki en son recipe'den bir önceki recipe olmalıdır. Yani artık
.procmailrc dosyasının son kısmı şunun gibi görünüyor:

:0 E
* ^From.*mel@melsoft.com.tr
/dev/null

:0 E
* ^From.*net-pa@netpa.de
/dev/null

:0 E
* !^From filker
* !^Subject:.*Re:
* !^FROM_DAEMON
* ^Subject:.*k-piyasa
| /users1/filker/bin/piyasa

:0 E
! ilkerf@geocities.com


 Sıra geldi "piyasa" adlı scripte. Şu "portal" adı verilen www sayfalarının
çoğunda finans bilgilerini bulmak olası. Ben e-kolay'ınkini kullandım. 
http://www.e-kolay.net:5214/finans/haberler/son_dakika.asp
adresinde biryerlerde alt alta borsa, dolar, mark ve altının son durumu
yazıyor. Bu sayfayı "lynx" programını kullanarak düz yazı biçiminde
okuyabiliriz. lynx'i "lynx -dump adres > dosya.txt" şeklinde kullanıyoruz. Ve
o adresteki sayfa text biçimine çevrilip istediğimiz bir dosyaya kaydediliyor.
Yalnız, lynx'in değişik sürümleri arasındaki farklar yüzünden ve o adresteki
sayfanın değişmesinden ötürü aşağıdaki piyasa scripti doğru çalışmayabilir.
"pattern matching" kısmını böyle bir durumda yeniden düzenlemelisiniz.
 Evet, bendeki lynx e-kolayın finans sayfasındaki ilgili bölümü şöyle
gösteriyor:

   Iç Piyasalar
   [77][LINK] [78]IMKB 14.039 -61 [INLINE]
   [79][LINK] [80]DEM 299.300 -2.200 [INLINE]
   [81][LINK] [82]USD 639.900 3.800 [INLINE]
   [83][LINK] [84]GLD 5.712.000 19.000 [INLINE]

 Bizi ilgilendiren yalnızca ortadaki kısımlar, ama önce bu kısmı sayfanın
geri kalanından düzgün bir biçimde ayırıp almamız gerek. Bunu "grep" adlı düz
yazı işleme/arama programıyla yapıyoruz:

adr="http://www.e-kolay.net:5214/finans/haberler/son_dakika.asp"
lynx -dump $adr > /tmp/sil1
cat /tmp/sil1 | grep -e "]IMKB " -e "]DEM " -e "]USD"

 Başka IMKB, DEM ve USD sözcükleri ile karışmasın diye baştaki köşeli parantez
ve sondaki boşluk ile birlikte arama yaptık. grep ile eğer birden çok sözcüğü
arıyacaksak her birinden önce "-e" koymalıyız. Bu komutun ayrıntılı
kullanımını görmek için "grep --help" veya "man grep" yazabilirsiniz. 

 Seçtiğimiz satırlardaki gerekli kısımları kesmek içinse "cut" komutunu
kullanıyoruz. "cut" komutuna "-d" ile hangi karakteri ayırma karakteri olarak
kullanacağını, ve "-f" ile de hangi parçaları istediğimizi söylüyoruz. Gene
ayrıntılı bilgi "man cut" ile elde edilebilir. Ayırma karakteri olarak "]"
kullanırsak satırların başındaki gereksiz kısımdan kurtuluruz:

grep -e "]IMKB " -e "]DEM " -e "]USD" /tmp/sil1 | cut -f4 -d]

 Evet şimdi seçtiğimiz kısmı ayıklayan bu komutlar şöyle bir sonuç verdi:

IMKB 14.039 -61 [INLINE
DEM 299.300 -2.200 [INLINE
USD 639.900 3.800 [INLINE

 Bunlardan da yalnızca ilk iki kısmı istiyoruz, öyleyse:

grep -e "]IMKB " -e "]DEM " -e "]USD" /tmp/sil1 |cut -f4 -d]  |cut -f1-2 -d\  

 Sondaki "-d\ " 'den sonra bir boşluk var, boşluğa göre ayırıyoruz:

IMKB 14.039
DEM 299.300
USD 639.900

 Tamam. O karman çorman sayfadan istediğimiz kısmı elde ettik. Geriye bu üç
satırı yan yana dizip, bir e-posta'nın Subject: kısmına koyup göndermek kaldı.
Tüm bunları yapan "piyasa" adlı script şöyle:

-------------aşağısı piyasa scripti-------------------
#!/bin/sh
#
# piyasa shell scripti, finans bilgilerini alıp epostayla gönderir
#
no_proxy="*"
lynx -dump http://www.e-kolay.net:5214/finans/haberler/son_dakika.asp > /tmp/sil
grep -e "]IMKB " -e ]DEM -e]USD /tmp/sil | cut -f4 -d] | cut -f1-2 -d\  |while read qw
do
read we
read er
echo | mail -s "$qw $we $er" ilkerf@geocities.com 2> /dev/null
done
rm /tmp/sil
-------------yukarısı piyasa scriptine ait--------------

 Bu scripti kullanabilmek için eposta adresini quios'tan aldığınız kendi
eposta adresinizle değiştirmelisiniz. Ayrıca bu scripti mantıklı bir yere,
örneğin $HOME/bin diye bir dizine, koyup "chmod u=rwx,go=rx piyasa" ile
çalıştırılabilir hale de getirmelisiniz. Bu script'in bulunduğu yer tam dizin
adıyla beraber .procmailrc dosyasında ilgili yerde de belirtilmeli.

 Hepsini yerleştirip hemen bir deneme yaparsak:

Telsim'den 7557'ye gönderilen mesaj:
ilker@gk.ods.org(k-piyasa)

Quios'tan 1-2 dk. sonra telefona gelen mesaj:
From: ilker@gk.ods.org  Subject: IMKB 14.039/DEM 299.300/USD 639.900


  Seyrek de olsa bazen quios'tan mesajlar çok geç gelebiliyor. Daha iyi bir
servis bulunabilirse o da kullanılabilir. Bildiğim kadarıyla turk.net'in de
eposta - sms geçidi servisi var. Abone olanlar onu da deneyebilir.

 Bu servisi daha da geliştirebiliriz. Sinemalarda gösterilen filmleri
sorabilir, sözlük sorgulayabilir, hava durumunu öğrenebilir, telefon
defterimizden tel. no aratabilir, maç sonuçlarını alabilir, eve telefon gelip
gelmediğini, hangi saatlerde arandığımızı öğrenebiliriz. 

 Bunun kullanımı için evdeki bilgisayarımızın 24 saat internette olmasına
gerek yok. Crontab'dan belli saatlerde internete girmesini ve mesajlarla
ilgilenmesini sağlayabiliriz. Hatta yukarıdaki yöntemlerle bir daha hangi
saatte internete bağlanmasını ve ne kadar süreyle hatta kalmasını da ayarlamak
mümkün.

 Bir miktar elektronik bilginiz varsa daha da uçuk fikirleri deneyebilirsiniz.
Evde kaç kişi olduğunu, ışıkların açık olup olmadığını, (ütünün prizde
unutulup unutulmadığını :) ), ev sıcaklığını cep telefonunuza sorabilir, gene
telefonunuzdan klimayı ya da ısıtıcıyı çalıştırabilir, sunucu bilgisayarınızın
bakımını yapabilirsiniz vs. vs. vs.  

 Basit bir cep telefonuyla çeşitli denetimleri yapmak için gerekli yazılım
aracını oluşturduğumuza göre nerede nasıl kullanacağımız bize bağlı.
Bu yazıyı, İzmirdeki birkaç sinemada oynayan filmleri sorgulamada kullanılan
scriptlerle ve bunları kullanan .procmailrc dosyasını üreten epostaket
scriptinin son biçimiyle bitiriyorum:

 .procmailrc dosyasına bir iki ek ile İzmir'deki İzmir, Sema, ve Şan
sinemalarının programlarını öğrenelim. Gerekli bilgileri
http://sinema.isbank.net.tr/izmir/ www sayfasından alıyoruz. Programlar
haftada bir Cumaları değiştiği için de her gelen sorguda www sayfasını bir
daha yüklemeyeceğiz, yalnızca cumaları önbellekte tuttuğumuz sinema
bilgilerini siliyoruz (Cumaları program biraz daha yavaş gelecek ama olsun).
 
 Sorguları Subject: kısmında k-sin-sema, k-sin-san, ve k-sin-izmir
komutlarıyla yapalım. Daha kısa komutlar da seçebilirsiniz, ama herhangi bir
mektupta yanlışlıkla o komutun geçmemesini garanti etmelisiniz. 
 Sema sineması için kullanacağımız recipe şu:

:0 E
* !^From filker
* !^Subject:.*Re:
* !^FROM_DAEMON
* ^Subject:.*k-sin-sema
| /users1/filker/bin/sinesema

 sinesema isimli script de gidip sema sinemasına ait bilgileri getirip
postalıyacak. Benzer şekilde diğer scriptlerin de adlar sineizmir ve sinesan.
Hemen scriptleri yorumsuz olarak aşağıya alalım, kullanmadan önce
scriptlerdeki bütün eposta adreslerini kendi quios.com adreslerinizle
değiştirmeyi unutmamalısınız, yoksa yaptığınız denemelerin çalışıp
çalışmadığını siz değil ben görmüş olurum:

-----------sineizmir adlı script------------
#!/bin/sh
no_proxy="*"
dt=`date`
set $dt
if [ "$1" == "Fri" ]; then
rm /tmp/sinus1
fi
if [ ! -f /tmp/sinus1 ]; then
lynx -dump http://sinema.isbank.net.tr/izmir/izmir.html > /tmp/sinus1
fi
cat /tmp/sinus1 | grep -1 \.jpg | grep -v -e \.jpg -e Salon -e "--" | \
cut -f2 -d\( | cut -f1 -d\) | while read qw
do
read we
read er
echo | mail -s "Izmir: $qw/$we/$er" ilkerf@geocities.com 2> /dev/null
done
---------sineizmir scripti sonu-------------------

------aşağısı sinesan scripti----------------
#!/bin/sh
no_proxy="*"
dt=`date`
set $dt
if [ "$1" == "Fri" ]; then
rm /tmp/sinus2
fi
if [ ! -f /tmp/sinus2 ]; then
lynx -dump http://sinema.isbank.net.tr/izmir/san.html > /tmp/sinus2
fi
cat /tmp/sinus2 | grep -1 \.jpg | grep -v -e \.jpg -e Salon -e "--" | \ 
cut -f2 -d\( | cut -f1 -d\) | while read qw
do
read we
read er
read rt
echo | mail -s "San: $qw/$we/$er/$rt" ilkerf@geocities.com 2> /dev/null
done
-----------sinesan scripti sonu---------------

---------aşağısı sinesema scripti-----------------
#!/bin/sh
no_proxy="*"
dt=`date`
set $dt
if [ "$1" == "Fri" ]; then
rm /tmp/sinus3
fi
if [ ! -f /tmp/sinus3 ]; then
lynx -dump http://sinema.isbank.net.tr/izmir/sema.html > /tmp/sinus3
fi
cat /tmp/sinus3 | grep -1 \.jpg | grep -v -e \.jpg -e Salon -e "--" \
| cut -f2 -d\( | cut -f1 -d\) | while read qw
do
read we
read er
read rt
echo | mail -s "Sema: $qw/$we/$er/$rt" ilkerf@geocities.com 2> /dev/null
done
----------------sinesema scripti sonu------------------


  Bu scriptlerin de doğru çalışması için sizdeki "lynx" sürümünün çıktısıyla
uyumlu olmalı. Örneğin kimi lynx'ler için yukarıdaki "-e \.jpg" kısmını
"-e INLINE" ile değiştirmelisiniz. Örneğin lynx'in "2.8rel.2" sürümü aşağıdaki
gibi bir text getiriyor:

Gösterimdeki Filmler

   28 Days (28 Gün)
   [INLINE]
   Salon: 1
   Seanslar: 12:15 / 14:30 / 16:45 / 19:00 / 21:15
...

 Biz de INLINE'ın 1 altı ve 1 üstü dahil olmak üzere üç satırı seçip 
(cat /tmp/sinus2 | grep -1 INLINE ). Sonra "INLINE" ve "Salon:" içeren
satırları çıkarıyoruz (grep -v -e INLINE -e Salon -e "--" ). Sonuçta yalnızca
film adı kalıyor. Onun da parantez içindeki Türkçe adını ayıklayıp,
diğerleriyle birlikte Subject: kısmına yerleştirip gönderiyoruz. Hepsi bu.
 Şimdi de "epostaket" scriptinin son biçimini yazalım:

-----------------epostaket scripti son sürüm------------------
#!/bin/sh
#
# epostaket
#
# e-posta'lari adres ve icerige gore engellemek icin
# .forward ve .procmailrc dosyalari olusturumu.
#
# Ilker Ficicilar
# ilker@quios.com 
# ilkerf@boltblue.com
# Temmuz 2000
#
#
cat < forward
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #ilker"
EOF1
cat < procmailrc
# procmail islem dosyasi
# epostaket tarafindan otomatik olarak olusturulmustur.
#
# epostaket programi icin: http://ilkerf.tripod.com/teknik/
#
#  Ayrintili durum bilgisi     
VERBOSE=off

#  Kullanilacaksa mektup kutularinin dizini ( pine icin mail elm icin Mail
# ve netscape icin nsmail dizini)

#MAILDIR=$HOME/Mail

## log ve rc dosyalari icin dizin adI
#PMDIR=$HOME/.procmail

#LOGFILE=$PMDIR/log

EOF2

echo ":0:" >> procmailrc
cat bloke | while read qw
do
echo "* ^From.*"$qw
echo "/dev/null"
echo
echo ":0 E"
done >> procmailrc

echo "* !^From filker" >> procmailrc
echo "* !^Subject:.*Re:" >> procmailrc
echo "* !^FROM_DAEMON" >> procmailrc
echo "* ^Subject:.*k-piyasa" >> procmailrc
echo "| /users1/filker/bin/piyasa" >> procmailrc
echo >> procmailrc
echo ":0 E" >> procmailrc

echo "* !^From filker" >> procmailrc
echo "* !^Subject:.*Re:" >> procmailrc
echo "* !^FROM_DAEMON" >> procmailrc
echo "* ^Subject:.*k-sin-izmir" >> procmailrc
echo "| /users1/filker/bin/sineizmir" >> procmailrc
echo >> procmailrc
echo ":0 E" >> procmailrc

echo "* !^From filker" >> procmailrc
echo "* !^Subject:.*Re:" >> procmailrc
echo "* !^FROM_DAEMON" >> procmailrc
echo "* ^Subject:.*k-sin-san" >> procmailrc
echo "| /users1/filker/bin/sinesan" >> procmailrc
echo >> procmailrc
echo ":0 E" >> procmailrc

echo "* !^From filker" >> procmailrc
echo "* !^Subject:.*Re:" >> procmailrc
echo "* !^FROM_DAEMON" >> procmailrc
echo "* ^Subject:.*k-sin-sema" >> procmailrc
echo "| /users1/filker/bin/sinesema" >> procmailrc
echo >> procmailrc
echo ":0 E" >> procmailrc

echo "! ilkerf@geocities.com" >> procmailrc
echo >> procmailrc

#autoreply icin:  
#| (formail -r ; cat dosyaadi) | $SENDMAIL -oi -t

----------epostaket script dosyasının sonu-----------

 Bu scripti kendi istekleriniz doğrultunuzda, kendi epostanızı kullanarak, 
ve önceden hazırladığınız "bloke" dosyasıyla aynı dizindeyken çalıştırdığınızda
"procmailrc" adlı bir dosya oluşturulacak. Bu dosyayı inceleyip son
kontrolleri yaptıktan sonra,

cp procmailrc ~/.procmailrc

diyerek ana dizininizde yeni ".procmailrc" dosyanızı koyarak. Sistemi çalışır
hale getirebilirsiniz. Tekrar, "$HOME/.forward" dosyasının da doğru olduğundan
emin olun. Örnek ".forward" dosyası da noktasız "forward" adıyla bulunduğunuz
dizinde oluşturulmuş olacak. İçindeki "#ilker" kısmını "#kullanıcı_adınız"
şeklinde değiştirmelisiniz.

 Verilen örneklerle cep telefonumuzdan kullanabileceğimiz dört komutumuz oldu:
k-piyasa
k-sin-izmir
k-sin-san
k-sin-sema

 Bu komutları,
eposta@adresimiz(komut)
biçiminde bir SMS ile gönderiyoruz. Normal bir eposta hesabından da bu
epostayı göndererek cep telefonumuza gerekli bilgileri göndertebiliriz. Ama
asıl amaç bunu cep telefonundan yapmak. Bu telsim'den kolayca yapılabiliyor.
Turkcell'den eposta atabilmek içinse +393334774753'e
EMA eposta@adresimiz .konu.mesaj
biçiminde bir SMS gönderiyoruz. http://www.excell.to/ 'nun verdiği bu
servis Telsim'den de çalışıyor. Üye olunca adreslere kısaltma
atayabilmek olası. Böylece komutları
EMA kısaltma .k-piyasa.
şeklinde gönderebiliyoruz. Adresin kısaltması tek harf de olabiliyor.

 Buradaki script dosyalarını ve örnekleri http://ilkerf.tripod.com/teknik/
adresinde bulmanız mümkün. Gerekli yazı, dosya ve scriptler ise bir paket
halinde http://ilkerf.tripod.com/teknik/elmekyonlen.tar.gz URLsinde.
 Paketi çektikten sonra,
tar -xzvf elmekyonlen.tar.gz
diyerek açabilirsiniz.

 Bu eposta - cep telefonu geçidi kurulu durumda, kullanıyorum ve gayet güzel
çalışıyor. Umarım anlattıklarımda bir sorun çıkmaz, deneyeceklere şimdiden
kolay gelsin.

İlker Fıçıcılar  - Temmuz 2000

---

Ana sayfaya dönmek icin buraya tıklayın
Önceki sayfa için de buraya tıklayın
http://ilkerf.tripod.com/teknik/ sayfası için buraya tıklayın


İlker FIÇICILAR
ilkerf@geocities.com