Python - POP3 Mailler Üzerinde İşlemler

Python - POP3 Mailler Üzerinde İşlemler Hosting firmalarının sağladığı POP3 desteğinin yanı sıra bedava e-posta hizmeti veren servislerde artık POP3 desteği sunuyor. En sevdiğimiz oyuncağımız Python geniş kütüphanesi sayesinde bu konuda da imkanlar sağlıyor. Python"un standart kütüphanesindeki POP3 desteği sayesinde kendi e-posta uygulamalarınızı yazabilrisiniz. Örneğin, sadece başlıkları getiren text tabanlı bir wap sayfası mail okumak için harcadığınız gprs üzretini düşürebilir. Regular Expression"ın gücüyle kendinize ait bir spam filtreleyici de yazabilirsiniz. Ya da bir Email Client neden olmasın? Aşağıdaki küçük uygulamanın ve açıklamaların başlangıç için faydalı olacağını umuyorum. Yazdığınız kodları bizlerle paylaşmayı unutmazsınız umarım :)# -*- coding: iso-8859-9 -*-import getpass, poplib, re# Pop AyarlarınızPOPHOST = "mail.turkpython.net"POPUSER = "webmaster@turkpython.net"POPPASS = "xxxxxxx"# Mesaj içeriğinden çekilecek maksimum satırMAXLINES = 10# Gerekli başlıklarrx_headers = re.compile(r"^(From|To|Subject)")try: # Mail server"a bağlantı ve kimlik doğrulaması pop = poplib.POP3(POPHOST) pop.user(POPUSER) if not POPPASS: # Şifre girilmemişse soruyoruz POPPASS = getpass.getpass("%s@%s için şifre:" % (POPUSER, POPHOST)) # Kimlik doğrulaması(Şifre) pop.pass_(POPPASS) # Genel bilgileri alıyoruz (msg_count, box_size) stat = pop.stat() # Verileri yazdırıyoruz print "Merhaba %s@%s" % (POPUSER, POPHOST) print "Durum: %d mesaj, %d bytes" % stat bye = 0 count_del = 0 for n in range(stat[0]): msgnum = n+1 # Başlıkları çekiyoruz response, lines, bytes = pop.top(msgnum, MAXLINES) # Mesaj içeriğini ve başlıkları yazdırıyoruz print "Mesaj %d (%d bytes)" % (msgnum, bytes) print "-" * 30 print " ".join(filter(rx_headers.match, lines)) print "-" * 30 # Döngüyle mesajlarızı okuyoruz while 1: k = raw_input("(d=sil(delete), s=geç(skip), v=görüntüle(view), q=çıkış(quit))") if k in "dD": # Maili sileceğiz k = raw_input("%d Mesajını silmek istediğinizden emin misiniz ? (y/n)" % msgnum) if k in "yY": pop.dele(msgnum) print "%d Mesajı silinecektir." % msgnum count_del += 1 break elif k in "sS": print "Serverda %d mesaj kaldı." % msgnum break elif k in "vV": print "-" * 30 print " ".join(lines) print "-" * 30 elif k in "qQ": bye = 1 break # Güle Güle deme vakti geldi çattı if bye: print "iyi Günler" break # Özet print "%s@%s Posta Kutusundaki %d Mesaj Siliniyor." % (POPUSER, POPHOST, count_del ) # Operasyonları tamamla ve serverla bağlantıyı kes. print "POP3 oturumu kapatılıyor." pop.quit()except poplib.error_proto, detail: # Hata topluyoruz print "POP3 Protocol Error:", detail

Döküman Arama

Başlık :

Kapat