وبلاگ فربد | Farbod Blog

توی این وبلاگ راجع به پروژه هام صحبت می کنم

برنامه فرستادن ایمیل با پایتون

  • ۴۸۱

سلام دوستان :)

امروز میخواستم برنامه فرستنده ایمیل با پایتون رو بهتون نشون بدم

کار این برنامه اینه که شما داخلش ایمیل خودت و پسورد ایمیلتون رو وارد میکنید و ایمیل هدف رو بعد برای ایمیلتون subject و body رو تایین میکنید و دکمه send رو میزنید و برنامه ایمیل رو میفرسته

 

خب اگه شما یک حساب gmail داشته باشید میتونید با استفاده از آدرس سرور smtp به اون متصل شین

اما متاسفانه گوگل برای امنیت بیشتر اجازه چنین کاریو نمیده

پس برای حل این مشکل به این لینک مراجعه کنید و وضعیت less secure apps را به ON تغییر دهید.

 

 

خب برای اینکار به ماژول tkinter برای گرافیک برنامه مون و به smtplib برای فرستادن ایمیل

 

from tkinter import *
from tkinter.scrolledtext import ScrolledText
import smtplib

 

بعدش button ها label ها textbox ها و... رو باید تعریف کینم پس:

root = Tk()
root.title("gmail Sender")
label_g = Label(root, text="Your Gmail-Address: ")
label_g.grid(row=0, column=0)
entry1 = Entry(root)
entry1.grid(row=0, column=1)
pass_label = Label(root, text="Your Password: ")
pass_label.grid(row=1, column=0)
entry2 = Entry(root)
entry2.grid(row=1, column=1)
label_target = Label(root, text="Your Target-Gmail-Address: ")
label_target.grid(row=2, column=0)
entry3 = Entry(root)
entry3.grid(row=2, column=1)
lbl = Label(root, text="Subject: ")
lbl.grid(row=3, column=0)
sub = Entry(root)
sub.grid(row=3, column=1)
label_text = Label(root, text="Your Message: ")
label_text.grid(row=4)
textbox = ScrolledText(root)
textbox.grid(row=5)

 

بعدش باید یک شئ smtp برای اتصال به سرور و یک شی برای فرستادن پیام به سمت سرور ایجاد می کنیم

def but():
    message = """From Person <{0}>
To: To Person <{1}>
MIME-Version: 1.0
Content-type: text/html
Subject: {2}

{3}""".format(entry1.get(), entry3.get(), sub.get(), textbox.get(0.0, END))
    smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
    smtpObj.ehlo()
    smtpObj.starttls()
    smtpObj.login(entry1.get(), entry2.get())
    smtpObj.sendmail(entry1.get(), entry3.get(), message)

خب قسمت اصلی برنامه رو نوشتیم فقط باید یک دکمه تعریف کنیم که وقتی کاربر روش کلیک میکنه ایمیل رو بفرسته.

b1 = Button(root, text="send", command=but)
b1.grid(row = 6)

آخرش هم این رو اضافه میکنیم تا برنامه بسته نشه

mainloop()

ابن هم کد کامل:

from tkinter import *
from tkinter.scrolledtext import ScrolledText
import smtplib

root = Tk()
root.title("gmail Sender")
label_g = Label(root, text="Your Gmail-Address: ")
label_g.grid(row=0, column=0)
entry1 = Entry(root)
entry1.grid(row=0, column=1)
pass_label = Label(root, text="Your Password: ")
pass_label.grid(row=1, column=0)
entry2 = Entry(root)
entry2.grid(row=1, column=1)
label_target = Label(root, text="Your Target-Gmail-Address: ")
label_target.grid(row=2, column=0)
entry3 = Entry(root)
entry3.grid(row=2, column=1)
lbl = Label(root, text="Subject: ")
lbl.grid(row=3, column=0)
sub = Entry(root)
sub.grid(row=3, column=1)
label_text = Label(root, text="Your Message: ")
label_text.grid(row=4)
textbox = ScrolledText(root)
textbox.grid(row=5)

def but():
    message = """From Person <{0}>
To: To Person <{1}>
MIME-Version: 1.0
Content-type: text/html
Subject: {2}

{3}""".format(entry1.get(), entry3.get(), sub.get(), textbox.get(0.0, END))
    smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
    smtpObj.ehlo()
    smtpObj.starttls()
    smtpObj.login(entry1.get(), entry2.get())
    smtpObj.sendmail(entry1.get(), entry3.get(), message)
b1 = Button(root, text="send", command=but)
b1.grid(row = 6)
 
  
mainloop()

خب حالا برنامه رو اجرا کنین و نتیجه کار رو ببینین

 

 

امیدوارم براتون مفید بوده باشه :)


نظرات: (۰) هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی