Zıplanacak içerik
  • Üye Ol

POP3 Mailler Üzerinde İşlemler


Muallim-i Âli

Önerilen İletiler

Yazan : TurkPython

 

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.

 

# -*- coding: iso-8859-9 -*-
import getpass, poplib, re


# Pop Ayarlarınız
POPHOST = "mail.turkpython.net"
POPUSER = "[email protected]"
POPPASS = "xxxxxxx"

# Mesaj içeriğinden çekilecek maksimum satır
MAXLINES = 10

# Gerekli başlıklar
rx_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 "\n".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 "\n".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

Yoruma sekme
Diğer sitelerde paylaş

Katılın Görüşlerinizi Paylaşın

Şu anda misafir olarak gönderiyorsunuz. Eğer ÜYE iseniz, ileti gönderebilmek için HEMEN GİRİŞ YAPIN.
Eğer üye değilseniz hemen KAYIT OLUN.
Not: İletiniz gönderilmeden önce bir Moderatör kontrolünden geçirilecektir.

Misafir
Maalesef göndermek istediğiniz içerik izin vermediğimiz terimler içeriyor. Aşağıda belirginleştirdiğimiz terimleri lütfen tekrar düzenleyerek gönderiniz.
Bu başlığa cevap yaz

×   Zengin metin olarak yapıştırıldı..   Onun yerine sade metin olarak yapıştır

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Önceki içeriğiniz geri getirildi..   Editörü temizle

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Yeni Oluştur...

Önemli Bilgiler

Bu siteyi kullanmaya başladığınız anda kuralları kabul ediyorsunuz Kullanım Koşulu.