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

Cevap