20 Şubat 2014 Perşembe

Python smtplib Modülü ile Mail Gönderme

Bu yazıda Python'ın smtplib modülünü kullanarak mail atma işlemini yapacağız. smtplib modülünü kullanmak oldukça basit. İlk önce bir sunucu kullanmamız gerekiyor. Eğer siz isterseniz yerel makinenize bir sunucu kurarak onun üzerinden mail gönderebilirsiniz. Biz Google'ın smtp sunucusunu kullanacağız. İlk önce kullanacağımız fonksiyonların ne işe yaradıklarını açıklayalım.
import smtplib #smtplib modülünün içe aktarımı

smtplib.SMTP(sunucu,port) # Kullanılan sunucuya bağlanma işlemi

smtplib.SMTP_SSL(sunucu,port) # Eğer sunucu SSL kullanıyorsa bu fonksiyon kullanılır. Bizde google için bunu kullanacağız.


sunucu.sendmail(gonderici,alici,mail) # Mail gönderme işlemi

sunucu.quit() # Sunucu ile bağlantının kapatılma işlemi

Bir Python dosyası oluşturun ve aşağıdaki kodları kaydedin.
# -*- coding:utf-8 -*-
import smtplib


#server = smtplib.SMTP("smtp.google.com",587)

#Kullanıcıdan alıcağımız veriler için fonksiyon tanımladık
def giris(kelime):
    return raw_input(kelime).strip()

#Sunucu ile bağlantıyı kuran fonksiyonu tanımladık.
def baglan():
    sunucu = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    sunucu.login("gmail adresiniz","gmail şifreniz")
    return sunucu

def mailgonder():
    sunucu = baglan()

    gonderici = giris("Maili gönderenin mail adresi:")
    alici = giris("Maili alanın mail adresi:")

    konu = giris("Mailin konusu:")
    icerik = giris("Mailin içeriği:")

    mail = """
            Gönderen:   %s
            Konu:       %s
            Mesaj:      %s
    """ % (gonderici,konu,icerik)

    try:
        #maili gönderiyoruz. Aldığı parametreler gonderenin mail adresi, alıcının mail adresi, ve mail içeriği
        sunucu.sendmail(gonderici,alici,mail)
        print "Mail başarılı bir şekilde gönderildi."
    except EOFError:
        print "Mail gönderilirken hata oluştu."

    sunucu.quit()

#mail gönder fonksiyonunu çağırdık
mailgonder()
Mail kutusunu kontrol ettiğinizde mailin geldiğini görebilirsiniz.
Kaynakça

5 yorum :

  1. meraba ben python da şole bir kodlama yaptım ama bir hata veriyo bilen arkadaşlar yardımcı olabilirmi:
    kodlar:
    # -*- coding: cp1254 -*-
    from Tkinter import*
    import smtplib as x
    pencere=Tk()
    def gonder():
    # baglanacagimiz sunucu ve port bilgisini giriyoruz
    y = x.SMTP("smtp.gmail.com:587")
    y.starttls()
    # sunucumuz kimlik dogrulama gerektiriyorsa kullanici adi ve sifre bilgilerini giriyoruz
    y.login("orgeneral.onurbaba@gmail.com","*****")
    email = "hack.button@hotmail.com"
    message= mesaj.get()
    y.sendmail("orgeneral.onurbaba@gmail.com",email,message)
    # gonderme isleminden sonra sunucu ile baglantiyi kesiyoruz
    y.quit()

    mesaj=Entry()
    mesaj.pack()
    buton=Button(pencere)
    buton.config(text=u"gonder",command=gonder)
    buton.pack()
    mainloop()

    YanıtlaSil
  2. elinize sağlık... başarılı toplu mail atma programı gibi görünüyor

    YanıtlaSil
  3. İyi çalışmalar peki bu maile pcdeki bir dosyanın konumunu yazarak o dosyayı da göndermek istersek nasıl bir yol izlememiz gerekir?

    YanıtlaSil
  4. Burayada bakabilirsiniz ;)

    http://www.apkoyun.club/2017/03/python-3x-serisi-mail-gonderme-nasil.html?m=1

    YanıtlaSil
    Yanıtlar
    1. her yere aynısını yazma lan sahtekar

      Sil