İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python SMTP ile Mail Onayı

TheChief - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
11/2015
Nereden:
Kali Linux
Mesajlar:
78
Konular:
17
Teşekkür (Etti):
11
Teşekkür (Aldı):
11
Ticaret:
(0) %
18-07-2018 16:55
#1
Python SMTP ile Mail Onayı
Kod:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from time import sleep
import webbrowser
import sys
import random
# Kullanacağımız kütüphaneleri import ediyoruz.
database = ["*****00@gmail.com"] # Sisteme kayıtlı kullanıcıların mailleri database zip'imizde.
onaykodu=str(random.randrange(11245,94832, 3)) # Maile yollanacak olan onay kodumuzu burada kendi belirliyor.

mail_gir=input("Lütfen mailinizi girin: ") # Kişi mail adresini giriyor.

if mail_gir in database: # Eğer sistemde böyle bir mail varsa işlemlerimiz başlıyor.

    mesaj=MIMEMultipart()

    mesaj["From"]="*****00@gmail.com" # Buraya gönderen maili giriyoruz.

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

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

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

        mail.ehlo()

        mail.starttls()

        mail.login("*****00@gmail.com","*****") # Gönderecek mail olan mailimizi ve şifresini giriyoruz.

        mail.sendmail(mesaj["From"],mesaj["To"],mesaj.as_string())

        print("Onay kodunuz gönderildi, yönlendiriliyorsunuz...")

        sleep(0.75)

        webbrowser.open_new_tab("https://www.gmail.com/") # Gmail sayfasına yönlendiriyor.

        mail.close() # Mailimizi ve şifresini girdiğimiz için işlem bittikten sonra smtp serverinden çıkıyoruz.

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

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...
---------------------
Unutursak Türklüğümüzü;
Gök girsin, kızıl çıksın!
Konu TheChief tarafından (18-07-2018 16:56 Saat 16:56 ) değiştirilmiştir.
Sessizer Teşekkür etti.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı