İşlevi kontrol etme

Arkadaşlar bir mail gönderme programı yaptım ancak mailin gönderilip gönerilememesine karşı yeni devam yolları yapmak istiyorum.bunun içinde komutu kontrol etmem lazım.
mail.sendmail(adres,alici,mesaj)
eğer çalışıyorsa işlem tamam
değilse şu devam yollarına bakın diyeceğim ama nasıl yapacağımı bilmiyorum
sanırım true false kullanacağım ama beceremedim yardımcı olursanız sevinirim

Merhaba. Bu işlemi hangi kütüphaneyi kullanarak yapıyorsunuz? Kodunuzu paylaşabilir misiniz?

import smtplib
print("|\t\tMEHMET MERT ALTUNTAŞ")
print(“Dünyanın en iyi mail gönderme programını kullanırken keyfinize bakın”)

mesaj=input(“Mail göndermek istediğiniz metni giriniz”)
adres=input(“Mail adresinizi giriniz”)

print(“Önemli bilgi:”)
print("MailG sizin üzerinizden mail gönderdiği için hesabınıza girmek zorundasınız,\n bunun için şifrenizi girin,\n eğer istemiyorsanız 1 yazın ")
sifre=input(“ŞİFRENİZİ GİRİNİZ”)
if(sifre==“1”):
print(“Mail başka bir hesaptan gönderiliyor”)
adres= “mailgsifresiz@gmail.com
sifre=“mailg12345”
alici=input(“KİME GÖNDERİLECEK(MAİL)”)

mail=smtplib.SMTP(“smtp.gmail.com”,587)
mail.ehlo()
mail.starttls()

mail.login(adres,sifre)

mail.sendmail(adres,alici,mesaj)

Kodlarınızı bu linke göre düzeltebilir misiniz?

‘’'import smtplib
print("|\t\tMEHMET MERT ALTUNTAŞ")
print(“Dünyanın en iyi mail gönderme programını kullanırken keyfinize bakın”)

mesaj=input(“Mail göndermek istediğiniz metni giriniz”)
adres=input(“Mail adresinizi giriniz”)

print(“Önemli bilgi:”)
print("MailG sizin üzerinizden mail gönderdiği için hesabınıza girmek zorundasınız,\n bunun için şifrenizi girin,\n eğer istemiyorsanız 1 yazın ")
sifre=input(“ŞİFRENİZİ GİRİNİZ”)
if(sifre==“1”):
print(“Mail başka bir hesaptan gönderiliyor”)
adres= “mailgsifresiz@gmail.com
sifre=“mailg12345”
alici=input(“KİME GÖNDERİLECEK(MAİL)”)

mail=smtplib.SMTP(“smtp.gmail.com”,587)
mail.ehlo()
mail.starttls()

mail.login(adres,sifre)

mail.sendmail(adres,alici,mesaj)
‘’’

Bu kodu inceleyin, anlamadığınız bir yer olursa sorabilirsiniz:

import smtplib
print("|\t\tMEHMET MERT ALTUNTAŞ")
print("Dünyanın en iyi mail gönderme programını kullanırken keyfinize bakın")

mesaj=input("Mail göndermek istediğiniz metni giriniz")

print("Mail başka bir hesaptan gönderiliyor")
adres= "mailgsifresiz@gmail.com"
sifre="mailg12345"
alici=input("KİME GÖNDERİLECEK(MAİL) ")

mail= smtplib.SMTP("smtp.gmail.com", 587)
mail.ehlo()
mail.starttls()

mail.login(adres,sifre)

try:
    sonuç = mail.sendmail(adres, alici, mesaj)
except smtplib.SMTPException as e:
    print("İşlem başarısız. Hata:\n", e)
else:
    print("işlem başarılı")
1 Beğeni

Çok teşekkür ederim .

Yanılıyor muyum emin değilim ama aşağıdaki kod ile bir mailin gönderilip gönderilmediğini kontrol edemiyoruz. Zaten gmail’de mevcut olmayan bir email adresine mail göndermeye çalıştığımız zaman, maili yolluyor, email adresi geçersiz ise gmail’den bize bir email geliyor. Aşağıdaki durumda da aynısı olacakmış gibi geliyor bana. Şayet email adresi hatalıysa, kullanıcının kendi email adresine adresin bulunamadığı ile ilgili bir mail gelecek.

try:
    sonuç = mail.sendmail(adres, alici, mesaj)
except smtplib.SMTPException as e:
    print("İşlem başarısız. Hata:\n", e)
else:
    print("işlem başarılı")

Haklı olabilirsiniz, çok kurcalamamıştım zaten. Bir hata yükselteceğini varsayıp base exception sınıfını aramıştım.

O zaman ya önceden bir şekilde mailin geçerliliğini kontrol edeceğiz ya da bu dediğiniz geri dönüş için bekleyeceğiz. Tabii gerçekleşip gerçekleşmeyeceği ve ne kadar süre içerisinde gerçekleşeceği belli olmayan bir olayın bilgisayar tarafından beklenmesi çok anlamsız; dediğiniz kadarı ile google’daki gmail sayfası bile bu konuda bir şey yapmıyor, kullanıcı sadece konu ile ilgili posta gelirse bundan haberdar olabiliyor.

Yaptığım denemelere göre, eğer email adresi geçersiz ise, kısa bir sürede gmail bir email gönderiyor. Süreyi ölçmedim ama kısa olduğunu söyleyebilirim.

Çok sağlıklı bir yöntem olmasa da, belki imaplib kütüphanesi kullanılarak, mail göndermeden önce gelen kutusundaki maillerin isimleri ve mail adedi kaydedilebilir, daha sonra smtplib ile mail gönderilir, kısa bir bekleme süresinden sonra da imaplib ile tekrar gelen kutusu kontrol edilir. Gelen mail gmail’in gönderdiği uyarı mail şablonuna uyuyorsa kullanıcıya adresin hatalı olduğu bildirilebilir.

Bu bahsettiğim yöntem çok kafama oturmadı ama aklıma da başka bir şey gelmedi.

Kişisel görüşüm bence böyle bir yola başvurmanın hiç gerek olmadığı yönünde.