Python ve Mail Gönderme

Bir çalışma için bir dizinin alt dizini içerisindeki dizinlerin toplam boyutunu bulmam ve bu boyut bilgisini yöneticinin posta adresine atmam gerekti. Linux ortamında bunu hızlı bir şekilde yapabilmek için hemen Python'a sarıldım. Kolayca aşağıdaki çalışan kodu yazdım:

Yukarıdaki kodu çalıştırdığınız zaman aşağıdaki çıktıya benzer bir çıktı elde etmelisiniz:

Ve aşağıdaki gibi bir postanın size ulaşması gerekiyor:



import commands,sys,os
def RepositorySize(rep):
try:
#Parametre olarak verilen dizinin boyutlarini bulacagiz
#Boyut 1024 byte'in katlari seklinde
komut = commands.getstatusoutput("du -ks "+rep)
#komut[0] komutun durumunu, komut[1] ciktisini sakliyor
print komut[1]
#Posta gondermek icin sendmail kullanalim
mail = os.popen("/usr/sbin/sendmail -t", "w")
mail.write("To: root@localhost\n")#sistem yoneticisine
mail.write("Subject: Size summary\n")#dizin boyut bilgisi gonderilecek
mail.write("\n") # baslik bilgisi mail govdesinden ayrilsin
mail.write(komut[1])#du komutunun ciktisini gonderelim
sts = mail.close()#sendmail kapansin
#basarili degilse hatayi ekrana yazalim
if sts != 0:
print "Sendmail exit status", sts
except:
print "Unexpected error:", sys.exc_info()[0]
raise
#Programi calistiralim
if(len(sys.argv)>1): RepositorySize(sys.argv[1])
else: RepositorySize("/home/emre/*")
sys.exit()

2 yorum:

VOBTR dedi ki...

Bunun windows için nasıl yapıldığınıda anlatabilirmisiniz?

teşekkürler.

T. E. Kalaycı dedi ki...

Merhaba,

http://www.go4expert.com/forums/showthread.php?t=7567 bağlantısında SMTP ile gönderimi Windowsa kurulmuş Python ile deneyebilirsiniz.