Çözüldü Python ile yazdığım programın çalışmama sebebi nedir?

MSM0638

Yeni üye
22 Mar 2023
21
2
Python:
import os
import smtplib
import shutil
import getpass
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

# Kullanıcının adı
username = getpass.getuser()

# Klasör yolu
folder_path = f"C:/Users/{username}/Desktop/fotogage"

# Klasör adı
folder_name = "fotogage"

# E-posta adresleri
sender_email = "mail1"
receiver_email = "mail 1"

# E-posta konusu ve metni
email_subject = "Klasör ekinde gönderildi"
email_body = "Merhaba,\n\nBu e-posta bir klasör eki içermektedir."

# Klasörü geçici bir konuma kopyalama
shutil.make_archive(folder_name, 'zip', folder_path)

# E-posta oluşturma
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = email_subject
message.attach(MIMEText(email_body, 'plain'))

# Klasör ekleme
with open(folder_name + ".zip", "rb") as folder:
    attach = MIMEApplication(folder.read(), _subtype="zip")
    attach.add_header('Content-Disposition', 'attachment', filename=str(folder_name + ".zip"))
    message.attach(attach)

# E-posta gönderme
with smtplib.SMTP('smtp.yandex.com', 587) as smtp:
    smtp.starttls()
    smtp.login(sender_email, "şifre")
    print("E-postayı gönderiyorum...")
    smtp.send_message(message)

# Klasörü geçici konumdan silme
os.remove(folder_name + ".zip")

print("Tamamlandı")
 
Son düzenleme:
30 Ağu 2021
117
39
23
import os
import smtplib
import shutil
import getpass
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

# Kullanıcının adı
username = getpass.getuser()

# Klasör yolu
folder_path = f"C:/Users/{username}/Desktop/fotogage"

# Klasör adı
folder_name = "fotogage"

# E-posta adresleri
sender_email = "mail 1"
receiver_email = "mail 2"

# E-posta konusu ve metni
email_subject = "Klasör ekinde gönderildi"
email_body = "Merhaba,\n\nBu e-posta bir klasör eki içermektedir."

# Klasörü geçici bir konuma kopyalama
shutil.make_archive(folder_name, 'zip', folder_path)

# E-posta oluşturma
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = email_subject
message.attach(MIMEText(email_body, 'plain'))

# Klasör ekleme
with open(folder_name + ".zip", "rb") as folder:
attach = MIMEApplication(folder.read(), _subtype="zip")
attach.add_header('Content-Disposition', 'attachment', filename=str(folder_name + ".zip"))
message.attach(attach)

# E-posta gönderme
with smtplib.SMTP('smtp.yandex.com', 587) as smtp:
smtp.starttls()
smtp.login(sender_email, "şifre")
print("E-postayı gönderiyorum...")
smtp.send_message(message)

# Klasörü geçici konumdan silme
os.remove(folder_name + ".zip")

print("Tamamlandı")


phyton sürümüm 3.11.1
Nasıl bir hata alıyorsunuz.
 

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,493
1,654
Kodunuz düzyazı olduğundan okunmuyor. Zahmet edip de düzenleyerek kod formatında yeniden atarsanız, test edecek insanların işini kolaylaştırırsınız.

Bir işlem sonrası hata olduğunu düşündüğünüz satırın bir altındaki satıra ya bir önceki satırına print ile çıktıda yazdırın. Böylece gerçekleşmeyen olayların olup olmadığını anlayabilirsiniz.
 

Grimner

Adanmış Üye
28 Mar 2020
6,325
4,806
Kodunuz düzyazı olduğundan okunmuyor. Zahmet edip de düzenleyerek kod formatında yeniden atarsanız, test edecek insanların işini kolaylaştırırsınız.

Bir işlem sonrası hata olduğunu düşündüğünüz satırın bir altındaki satıra ya bir önceki satırına print ile çıktıda yazdırın. Böylece gerçekleşmeyen olayların olup olmadığını anlayabilirsiniz.
Hocam sakin... bu aralar full yargı mode on :D
 

MSM0638

Yeni üye
22 Mar 2023
21
2
Kodunuz düzyazı olduğundan okunmuyor. Zahmet edip de düzenleyerek kod formatında yeniden atarsanız, test edecek insanların işini kolaylaştırırsınız.

Bir işlem sonrası hata olduğunu düşündüğünüz satırın bir altındaki satıra ya bir önceki satırına print ile çıktıda yazdırın. Böylece gerçekleşmeyen olayların olup olmadığını anlayabilirsiniz.
print kullanarak kodu test ettim (phyton kod formatında da düzenledim) hata aşşağıdaki kısımda gerçekleşiyor.

Python:
# E-posta gönderme
with smtplib.SMTP('smtp.yandex.com', 587) as smtp:
    smtp.starttls()
    smtp.login(sender_email, "şifre")
    print("E-postayı gönderiyorum...")
    smtp.send_message(message)

# Klasörü geçici konumdan silme
os.remove(folder_name + ".zip")
 

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,493
1,654

Ehlo methodunu kullanmadığınız için olabilir mi?
starttls methodundan önce kullanın
 

MSM0638

Yeni üye
22 Mar 2023
21
2
Şifre yerine, mail`in mi şifresini yazıyorsun ?
evet


Ehlo methodunu kullanmadığınız için olabilir mi?
starttls methodundan önce kullanın
Python:
# E-posta gönderme
with smtplib.SMTP('smtp.yandex.com', 587) as smtp:
    smtp.ehlo() 
    smtp.starttls()
    smtp.login(sender_email, "şifre")
    print("E-postayı gönderiyorum...")
    smtp.send_message(message)

# Klasörü geçici konumdan silme
os.remove(folder_name + ".zip")

print("Tamamlandı!")

bu şekilde?


Ehlo methodunu kullanmadığınız için olabilir mi?
starttls methodundan önce kullanın
hocam o şekilde değiştirdim ama yine çalışmadı. Acaba Yandex hesabımın IMAP ayarları ile mi ilgili?
 

Baudouin

Üye
14 Ağu 2022
89
8
context = ssl.create_default_context()
with smtplib.SMTP(smtp_server, port) as server:
server.ehlo() # Can be omitted
server.starttls(context=context)
server.ehlo() # Can be omitted
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
print("Mesaj müvəffəqiyyətlə göndərildi :)")

şifre yerine mail`in şifresini yazma. iki dogrulamayı aç, application passwordu yaz.
 

MrMaXim

Katılımcı Üye
16 Eki 2020
434
235
Yeşil Olan Yerler
Python:
import os
import smtplib
import shutil
import getpass
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

# Kullanıcının adı
username = getpass.getuser()

# Klasör yolu
folder_path = f"C:/Users/{username}/Desktop/fotogage"

# Klasör adı
folder_name = "fotogage"

# E-posta adresleri
sender_email = "mail1"
receiver_email = "mail 1"

# E-posta konusu ve metni
email_subject = "Klasör ekinde gönderildi"
email_body = "Merhaba,\n\nBu e-posta bir klasör eki içermektedir."

# Klasörü geçici bir konuma kopyalama
shutil.make_archive(folder_name, 'zip', folder_path)

# E-posta oluşturma
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = email_subject
message.attach(MIMEText(email_body, 'plain'))

# Klasör ekleme
with open(folder_name + ".zip", "rb") as folder:
    attach = MIMEApplication(folder.read(), _subtype="zip")
    attach.add_header('Content-Disposition', 'attachment', filename=str(folder_name + ".zip"))
    message.attach(attach)

# E-posta gönderme
with smtplib.SMTP('smtp.yandex.com', 587) as smtp:
    smtp.starttls()
    smtp.login(sender_email, "şifre")
    print("E-postayı gönderiyorum...")
    smtp.send_message(message)

# Klasörü geçici konumdan silme
os.remove(folder_name + ".zip")

print("Tamamlandı")
e-posta kısmına bi tekrar bak
 
Ü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.