Python SMTPLIB Modülünü Kullanarak E-Posta Göndermek (gmail)

JohnDoe

Kıdemli Üye
29 Eyl 2013
2,710
6
Teşkilat
Merhabalar,

Python üzerinden e-posta gönderme konusunda ciddi sıkıntılar yaşayan arkadaşlarımız var. Internet üzerinde ki kaynakların ise pek işe yaradığı söylenemez zaten. Kaynak oluşturayım istedim. Kullanacağımız modül: smtplib

SMTPLIB Nedir?

SMTP (simple mail transfer protocol) protokollerini kullanarak posta sunucuları arasında Python aracılığı ile e-posta gönderimine olanak sağlayan bir modüldür.

Öncelikle örneğimizde googleyi kullanacağımız için "2 adımlı doğrulama kodu" oluşturmamız gerekiyor. Bu google’nin güvenlik yöntemlerinden biridir. Adımları takip ediyoruz.
Not: Gmail kullanmayacak arkadaşların bu adımları takip etmesine gerek yoktur, direk program yazım kısmına geçebilirler.


adresine giriyoruz. Burada "Kurulumu Başlat" butonuna tıklıyoruz.

1kGWjp.png


2) (Eğer daha önce aktif ettiyseniz direk 4. adıma gidin) Gelen ekrana telefon numaranızı giriniz. Bu hesabınızı doğrulayacaktır. Daha sonra telefonunuza gelen güvenlik kodunu giriniz.

7cf9486a-abba-4ded-a105-cc66a3147317.jpg


3) Gelen kodu girdikten sonra size kullandığınız bilgisayarın güvenli olup olmadığını soracak. Siz tercihinize göre devam edin. Daha sonra "Onayla" diyerek doğrulamayı aktif edin.

gA90jR.png


4) Karşımıza 2 adımlı doğrulama sitemi geldi. Şimdi Python ile Mail gönderebilmek için bir uygulama şifresi oluşturacağız. "Uygulamaya Özel Şifreler" dedikten sonra "Uygulamaya Özel Şifreleri Yönet" diyoruz.

95D1v3.png


5) Cihaz seçin yazan kısmı "diğer" olarak işaretledikten sonra istediğimiz ismi yazıyoruz ve "Oluştur" diyoruz.

Qlp313.png


MyaG9Q.png


6) Sonuç olarak şifremiz oluşturuluyor. bu kodu kaybetmeyin, bir kenara not edin.

XoE12R.png


7) "Tamamlandı" deyip çıkıyoruz. Artık programımızı yazma vakti.

Program Yazım Süreci

Her modül gibi smtplib modülü de "import smtplib" denerek içeri aktarılır. Daha sonra gönderici ve alıcı taslakları oluşturulur.

b2LXQd.png


Burada gonderici_sifre yazan yer, bizim kullanacağımız hesabın şifresidir. Eğer gmail kullanılıyorsa oluşturduğumuz "2 adımlı doğrulama kodu" buraya yazılacaktır. Eğer normal bir sunucu kullanılıyorsa e-posta şifresi yazılabilir. alicilar değişkeni ise bir listedir. Bu, çoklu alıcı ekleyebileceğimiz anlamına geliyor.

Şimdi yapmamız gereken şey bir taslak oluşturmak. Dananın kuyruğunun koptuğu yer ise burada işte.

aD1Qjz.png


İlk 3 satır önemli, burası giden mail için bilgi kısımları. Bir çok kullanıcı bu kısımları eklemediği için giden mesaj düzensiz olarak gitmekte. ilk satırda ki <> işaretleri arasına kendi e-mail adresimizi, 2. satırda ki işaretlerin arasına da alıcının e mail adresini yazıyoruz. 3. satırda ki Subject ise konuyu belirler. From Person yerine kendi adımızı, To Person yerine ise alıcının adını yazıyoruz.

Burası da tamam ise sunucularımızı başlatalım ve gmail için giriş yapalım.

YlOLM6.png


Eğer gmail sunucularını kullanacak ise tırnak içerisine smtp.gmail.com yazacağız. Bu durumda gmail’ın veri akış portu 587. port olduğu için bunu yazıyoruz. Farklı posta hizmetlerinin portları da farklı (yandex, hotmail, outlook vs). Son olarak mesajımızı gönderiyoruz ve quit diyerek serverı kapatıyoruz.

8bNvka.png


Ben konsol üzerinde sonuçları göstermek için try/except blokları arasına aldım. Kodun son hali.

DRybEO.png


Sonuç;

mzJydR.png


Kontrol edelim;

2kE3yq.png


Görüldüğü gibi sıkıntısız bir şekilde e-posta gönderildi.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.