Python İle E-mail Dinleme Uygulaması

Celal ORMANLI
Kronnika
Published in
2 min readApr 7, 2020

Merhaba, bu yazımızda Kronnika’da platform dışında da sık kullandığımız bir özellik olan e-mail dinleme işleminden bahsedeceğiz. Ardından basit bir Python uygulaması yapacağız.

Kronnika’da sunduğumuz robotlar genellikle otomatik çalışacak şekilde ayarlanır. Çalışacağı zamanlar bellidir. Bunları nasıl yaptığımıza ayrı bir yazımızda değineceğiz.

Robotlar çalışmak için veriye ihtiyaç duyar, bu verinin sağlanma yöntemlerinden bir tanesi de e-maildir. Tıpkı insanlara gönderilen e-mailler gibi robotlara da e-mail gönderebiliyoruz. Robot o e-maili açıyor, içinde ihtiyacı olan bilgi ve belgeyi alıp çalışmaya başlıyor. İhtiyaç durumunda o e-maile cevap veriyor. Bazı robotlar çalışmak için e-mail bekliyor da olabilir. E-mail geldiği anda çalışıp işini hallediyor.

Robotların e-mail alma ve gönderme işlemleri yapabilmesi için bazı kütüphaneler kullanıyoruz. Bu yazımızda, öncelikle e-mail alma işlemlerini ele alacağız, e-mail gönderme işlemlerini ise başka bir blog yazımızda detaylandıracağız. E-mail alma işlemleri için Python’da imap e-mail iletişim protokülünü kullanan imaplib kütüphanesi bulunmaktadır. Bu kütüphane sayesinde gelen e-mailleri tüm içerikleri(alıcı, gönderici, tarih, konu, ek vb…) ile beraber okuyabiliyoruz.

Aşağıda temel bir e-mail okuma kodu bulunmaktadır.

import imaplib
M = imaplib.IMAP4_SSL('imap sunucu adresi','imap portu')
M.login('Kullanıcı Adı', 'Parola')
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
print('Message %s\n%s\n' % (num, data[0][1]))
M.close()
M.logout()

Bu kodu çalıştırdığımız zaman gelen tüm e-mailleri okumaya başlarız.

Okuma işlemini yaptığımızda karşımıza bu şekilde anlamsız gibi gözüken veriler çıkmaya başlar. Burada artık dinleme işlemini ne için yaptığımıza göre bu verileri anlamlandırırız.

Yukarıdaki kod tüm e-mailler üzerinde işlem yapıyor. Ancak bazen e-mailleri filtreleme ihtiyacı duyarız. Bu durumda gönderen, alıcılar, cc ve bcc’deki diğer alıcılar, konu, tarih, okunup okunmamış olma gibi birçok filtreleme seçeneğimiz bulunmaktadır. Filtreleme seçenek ve yöntemleri ile ilgili ayrı bir yazı paylaşacağız. Filtreleme sayesinde işimize yarayan e-maillere çok daha kolay bir şekilde erişebiliyoruz.

Bu yazımızda basit bir şekilde e-mail dinleme işleminden bahsettik. Robotların insan bağımsız kendi kendine çalışabilmeleri için eklediğimiz özelliklerden bir tanesine daha değindik. Bunun gibi daha birçok özellik bulunmaktadır. Biz de bu özellikleri paylaşmaya devam edeceğiz. Bir sonraki yazımızda görüşmek dileğiyle…

NOT: E-mail dinleme işlemi yapabilmemiz için e-mail sunucusunun 3. parti uygulamalara izin vermesi gerekmektedir. Bunu kullandığımız e-mail sunucusuna göre kendimiz ayarlayabiliyoruz.

--

--