Python SMTP ile Mail Onayı

TheChief

Üye
8 Kas 2015
84
0
Kod:
[COLOR="Orange"][COLOR="White"]import[/COLOR] [COLOR="Lime"]smtplib[/COLOR]
[COLOR="white"]from[/COLOR] [COLOR="lime"]email.mime.multipart[/COLOR] [COLOR="white"]import[/COLOR] [COLOR="lime"]MIMEMultipart[/COLOR]
[COLOR="white"]from[/COLOR] [COLOR="lime"]email.mime.text[/COLOR] [COLOR="White"]import [/COLOR][COLOR="lime"]MIMEText[/COLOR]
[COLOR="white"]from[/COLOR] [COLOR="lime"]time[/COLOR] [COLOR="White"]import [/COLOR][COLOR="lime"]sleep[/COLOR]
[COLOR="white"]import[/COLOR] [COLOR="lime"]webbrowser[/COLOR]
[COLOR="white"]import[/COLOR] [COLOR="lime"]sys[/COLOR]
[COLOR="white"]import[/COLOR] [COLOR="Lime"]random[/COLOR]
[COLOR="Cyan"]# Kullanacağımız kütüphaneleri import ediyoruz.[/COLOR]
database [COLOR="Yellow"]=[/COLOR] [COLOR="Magenta"]["*****[email protected]"][/COLOR] [COLOR="cyan"]# Sisteme kayıtlı kullanıcıların mailleri database zip'imizde.[/COLOR]
onaykodu[COLOR="Yellow"]=[/COLOR][COLOR="magenta"]str(random.randrange(11245,94832, 3))[/COLOR] [COLOR="Cyan"]# Maile yollanacak olan onay kodumuzu burada kendi belirliyor.[/COLOR]

mail_gir[COLOR="Yellow"]=[/COLOR][COLOR="magenta"]input("Lütfen mailinizi girin: ")[/COLOR] [COLOR="cyan"]# Kişi mail adresini giriyor.[/COLOR]

if [COLOR="magenta"]mail_gir in database:[/COLOR] [COLOR="cyan"]# Eğer sistemde böyle bir mail varsa işlemlerimiz başlıyor.[/COLOR]

    mesaj[COLOR="Yellow"]=[/COLOR][COLOR="magenta"]MIMEMultipart()[/COLOR]

    mesaj["From"][COLOR="Yellow"]=[/COLOR][COLOR="magenta"]"*****[email protected]"[/COLOR] [COLOR="cyan"]# Buraya gönderen maili giriyoruz.[/COLOR]

    mesaj["To"][COLOR="Yellow"]=[/COLOR][COLOR="magenta"]str(mail_gir)[/COLOR] [COLOR="Cyan"]# Gidecek mailimizi buraya yazıyoruz, ben bunu inputla aldığım için bu şekilde yaptım.[/COLOR]

    mesaj["Subject"][COLOR="Yellow"]=[/COLOR][COLOR="magenta"]"Onay Kodu"[/COLOR] [COLOR="cyan"]# Başlığımızı seçiyoruz.[/COLOR]

    icerik[COLOR="Yellow"]=[/COLOR][COLOR="magenta"]"\nAşağıdaki kodu giriş paneline girin:\n\n"+onaykodu+""[/COLOR]
    mesaj_icerik[COLOR="Yellow"]=[/COLOR][COLOR="magenta"]MIMEText(icerik, "plain")[/COLOR]
    mesaj.attach[COLOR="magenta"](mesaj_icerik)[/COLOR]
    [COLOR="cyan"]# Burada mesajımızın içinde ne yazacağını belirliyoruz.[/COLOR]
    try:
        mail[COLOR="Yellow"]=[/COLOR][COLOR="magenta"]smtplib.SMTP("smtp.gmail.com",587)[/COLOR] [COLOR="Cyan"]# Mail atacağımız porta bağlanıyoruz.[/COLOR]

        mail.ehlo()

        mail.starttls()

        mail.login[COLOR="Magenta"]("*****[email protected]","*****")[/COLOR] [COLOR="cyan"]# Gönderecek mail olan mailimizi ve şifresini giriyoruz.[/COLOR]

        mail.sendmail[COLOR="magenta"](mesaj["From"],mesaj["To"],mesaj.as_string())
[/COLOR]
        print[COLOR="magenta"]("Onay kodunuz gönderildi, yönlendiriliyorsunuz...")
[/COLOR]
        sleep[COLOR="magenta"](0.75)[/COLOR]

        webbrowser.open_new_tab[COLOR="magenta"]("https://www.gmail.com/")[/COLOR] [COLOR="cyan"]# Gmail sayfasına yönlendiriyor.[/COLOR]

        mail.close() [COLOR="cyan"]# Mailimizi ve şifresini girdiğimiz için işlem bittikten sonra smtp serverinden çıkıyoruz.[/COLOR]

    except: [COLOR="cyan"]# Eğer hata olursa sys modülüyle bildiriyoruz:[/COLOR]
        sys.stderr.write[COLOR="magenta"]("Mail gönderilemedi,program sonlandırılıyor...")[/COLOR] [COLOR="cyan"]# Hata olduğunda verilecek olan uyarı.[/COLOR]
        sys.stderr.flush() [COLOR="cyan"]# Hatamıza kırmızı renk verecek böylelikle gerçek bir hata gibi çalışacak.[/COLOR]
        sleep[COLOR="magenta"](1)[/COLOR]
        sys.exit() [COLOR="cyan"]# Uyarıdan 1 saniye sonra programımızı kapatıyor.[/COLOR]
[COLOR="Blue"]### Mail gönderme işlemimiz bitti, burası da onaylama kısmı. ###[/COLOR]
    while True: #[COLOR="Cyan"] Sonsuz bir döngüye sokuyor ve "break" ya da başka bir programı bitirme komudu görene kadar dönüyor.[/COLOR]
        onaykodu_gir[COLOR="Yellow"]=[/COLOR][COLOR="magenta"]input("Lütfen onay kodunu girin: ")[/COLOR] [COLOR="cyan"]# Maile yolladığımız onay kodunu girmemizi istiyor.[/COLOR]
        kodgir_hak[COLOR="Yellow"]=[/COLOR]0
        if [COLOR="magenta"]onaykodu_gir == onaykodu:[/COLOR] [COLOR="cyan"]# Eğer bize yolladığı ve girmemizi istediği kod doğruysa girişimizi kabul ediyor.[/COLOR]
            print[COLOR="magenta"]("Kontrol ediliyor...")[/COLOR]
            sleep[COLOR="magenta"](0.5)[/COLOR]
            print[COLOR="magenta"]("Girişiniz onaylandı, ana panele yönlendiriliyorsunuz.")[/COLOR]
            break [COLOR="cyan"]# Programımızı bitiyor.[/COLOR]
        else:
            sys.stderr.write[COLOR="magenta"]("Kodunuz hatalı, kontrol edip tekrar deneyin...")[/COLOR]
            sys.stderr.flush()
            [COLOR="cyan"]# Aynı şekilde hatamız.[/COLOR]
            kodgir_hak += 1 # Her hata yaptığımızda buraya 1 ekleniyor.
            if [COLOR="magenta"]kodgir_hak == 3:[/COLOR] [COLOR="cyan"]# Eğer 3 olursa, 3 kere denenmiş ve yanlış girilmiş demek oluyor. Bu yüzden programımız sonlanıyor.[/COLOR]
                print[COLOR="magenta"]("3 denemeden sonra hatalı giriş yaptınız, programs sonlandırılıyor.")[/COLOR]
                sleep[COLOR="magenta"](0.75)[/COLOR]
                break [COLOR="cyan"]# Programımızı bitiyor.[/COLOR][/COLOR]


Programımızı başlatıyorum:​
1 - Hızlı Resim
Mail adresime giriyorum:​
2 - Hızlı Resim
Ardından gelen kodu programımıza giriyorum:​
3 - Hızlı Resim
Ve gördüğünüz gibi mailimize gelen kodu girdiğimizde sisteme giriş yapabiliyoruz.
Bu sistem eğer çok önemliyse, her girişimizde mail isteyerek girişteki güvenlik seviyesini arttırabiliriz.
İnşallah ihtiyacı olanların, olmayanların yararına olmuştur.
Hayırlı günler, iyi forumlar dilerim...​
 
Son düzenleme:
Ü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.