13-09-2012 16:12 tarihinde, Sinan Duman yazdı:
Şöyle olabilir:
Mysql'deki veriyi, crontab'da vereceğin belli aralıklarla çalışan
scriptin kontrol edecek.
Değişiklik gördüğünde mail gönderecek.
Merhabalar,
Buna yakın bir şey olabilir. Mesela bir dizin belirlersiniz. O dizin
içine değişen kayıtları sistem saati ile alakalı rastgele dosya ismi
vererek metin dosyaya kaydedersiniz. Her bir kayıt değişikliği bir
dosyaya yani.
Mesela ekteki python kodu ile (elbette biraz değiştirerek) dosya
içeriğini istediğiniz kişiye yönlendirebilirsiniz. Ancak komut Qmail
için yazılmış. Gayet güzel çalışıyor ama diğer posta sunucularında urum
ne olur bilemem...
Dosyalar o dizinde birikir. Daha sonra mesela her 5 dakikaya Python
kodunu çalıştırır dosyaları gönderir ve sildirirsiniz... Dizinde dosya
varsa gönderilip silinir yoksa zaten mesele yok... :)
--
Kolay gelsin,
Mucip:)
#!/usr/bin/python
# -*- coding: utf8 -*-
# Bu program Squirrelmail Takvim eklentisini hatirlatici olarak
# kullanilmasi icin yazilmistir.
# Programi sadece takvim dosyalarini
import string, os, codecs, fnmatch, time, random
def IslemYap(GelenDosya,Kime):
global AnlikZaman
#Kisisnin domain'i tespit ediliyor ve [email protected] olarak belirleniyor.
Takas=Kime.split("@")
Gonderen="HATIRLATICI@"+Takas[1]
f=open(GelenDosya,"r")
for line in f:
Okunan=line
Bilgi=Okunan.split("|")
Tarih=Bilgi[0]
TarihAy=Tarih[0:2]
TarihGun=Tarih[2:4]
TarihYil=Tarih[4:8]
Saat=Bilgi[1]
SaatSaat=Saat[0:2]
SaatDakika=Saat[2:4]
Sure=Bilgi[2]
Durum=Bilgi[3]
Baslik=Bilgi[4]
Aciklama=Bilgi[5]
#********************************
t=(int(TarihYil), int(TarihAy), int(TarihGun),int(SaatSaat),int(SaatDakika),0,0,0,0)
BaslangicZaman=time.mktime(t)
BitisZaman=BaslangicZaman+(int(Sure)*60)
if BaslangicZaman<=AnlikZaman and AnlikZaman<=BitisZaman:
Sayac=str(random.random())
Sayac=Sayac[-5:]
# Mesajin olusturulacagi dizin... Bu dosya islem sonunda silinecek...
HedefDosya="/root/GidenPosta"+ Sayac + ".txt"
# Mesajin icerisi dolduruluyor...
cmd ='echo To:'+ Kime + '>'+ HedefDosya
os.system(cmd)
cmd ='echo From:'+ Gonderen + ' >>'+ HedefDosya
os.system(cmd)
cmd ='echo Subject:'+ Baslik + " Konulu Hatirlatmaniz var!" + '>>'+ HedefDosya
os.system(cmd)
cmd ='echo Hatirlatma Tarihi: '+ TarihGun + "/" + TarihAy + "/" + TarihYil + '>>' + HedefDosya
os.system(cmd)
cmd ='echo Hatirlatma Zamani: '+ SaatSaat + ':' + SaatDakika + '>>'+ HedefDosya
os.system(cmd)
cmd ='echo Hatirlatma Suresi: '+ Sure + ' dakika >>'+ HedefDosya
os.system(cmd)
cmd ='echo ----------------------------------------------------------- >>'+ HedefDosya
os.system(cmd)
cmd ='echo '+ Aciklama + '>>'+ HedefDosya
os.system(cmd)
cmd ='echo ----------------------------------------------------------- >>'+ HedefDosya
os.system(cmd)
cmd ='echo Kaynak tarih kaydina git >>' + HedefDosya
os.system(cmd)
cmd ='echo Sirket icinden: http://192.168.0.153/webmail/plugins/calendar/day.php?year=' + TarihYil + '\&month=' + TarihAy + '\&day=' + TarihGun + ' >>' + HedefDosya
os.system(cmd)
cmd ='echo Sirket disindan: http://85.105.32.244/webmail/plugins/calendar/day.php?year=' + TarihYil + '\&month=' + TarihAy + '\&day=' + TarihGun + ' >>' + HedefDosya
os.system(cmd)
cmd='cat ' + HedefDosya + ' |/var/qmail/bin/qmail-inject'
os.system(cmd)
cmd='rm -f ' + HedefDosya
os.system(cmd)
f.close()
def Basla():
DizinAdi="/var/lib/squirrelmail/prefs"
Yil =time.strftime("%Y",time.localtime())
Kriter = "*." + Yil + ".cal"
os.listdir(DizinAdi)
dirname = DizinAdi
os.listdir(dirname)
#print glob.glob('/var/lib/squirrelmail/prefs' + '/*.2009.cal')
#print [f for f in os.listdir(dirname)]
#print [f for f in os.listdir(dirname) if os.path.isfile(os.path.join(dirname, f))]
#print [f for f in os.listdir(dirname) if os.path.isdir(os.path.join(dirname, f))]
#showerror("Hata",u"FiyatDetay okunamadi!")
for file in os.listdir(DizinAdi):
if fnmatch.fnmatch(file, Kriter):
Kime=file[:-9]
IslemYap(DizinAdi + '/' + file,Kime)
AnlikZaman = time.time()
#print AnlikZaman
AnlikDakika = int(time.strftime("%M",time.localtime()))
#print AnlikDakika
#Programin her 5 dakikada bir yani besin katlari olan dakikalarda calismasini sagliyor...
if AnlikDakika%5 == 0:
Basla()
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php