ارسال ایمیل با استفاده از پایتون
در این مقاله قصد داریم با استفاده از کتابخانهی SMTP در پایتون، برنامهای برای ارسال ایمیل بسازیم. با کمک این کتابخانه میتوانیم ایمیلهای متنوعی با محتوای متنی و همچنین با افزودن پیوست ارسال کنیم.
پروتوکل SMPT یا Simple Mail Transfer Protocol وظیفهی مسیریابی و انتقال ایمیل بین سرورهای مختلف را بر عهده دارد. ماژول smtplib در پایتون یک شیء از نشست SMTP در client ایجاد میکند که این شیء میتواند به ارسال ایمیل به تمام سرورهای ایمیل بپردازد. برای ساخت یک شیء از SMTP دستورات زیر را وارد میکنیم:
import smtplib server = smtplib.SMTP(host='host_address',port=your_port)
در ادامهی مقاله با این دستور بیشتر آشنا میشویم.
ساخت یک ایمیل و ارسال آن
اگر شما یک حساب gmail داشته باشید، میتوانید از آدرس سرور SMTP آن برای ارسال ایمیل در برنامهی خود استفاده کنید (این کار را با سایر حسابهای ایمیل دیگر نیز میتوانید انجام دهید). اما توجه داشته باشید که Google به ما این اجازه را نمیدهد که با استفاده از smtplib وارد حساب خود شویم. برای حل این مشکل به این لینک مراجعه کنید و وضعیت less secure apps را به ON تغییر دهید.
حال در برنامهی پایتون خود باید مراحل زیر را به ترتیب انجام دهیم:
۱. یک شیء SMTP برای اتصال به سرور ایجاد میکنیم.
۲. وارد حساب کاربری خود میشویم.
۳. مشخصات ورود و سرآیند پیام خود را تعریف میکنیم.
۴. یک شیء پیام از نوع MIMEMultipart ایجاد کرده و سرآیندهای تعریف شده در مرحلهی قبل (From، To، Subject و …) را به آن اضافه میکنیم.
۵. پیام ساخته شده را به شیء MIMEMultipart اضافه میکنیم.
۶. در نهایت پیام را ارسال میکنیم.
کد فرآیند بالا به صورت زیر نوشته میشود:
from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib # create message object instance msg = MIMEMultipart() message = "Zero To Hero" # setup the parameters of the message password = "your_password" msg['From'] = "your_address" msg['To'] = "to_address" msg['Subject'] = "ZTH" # add in the message body msg.attach(MIMEText(message, 'plain')) #create server server = smtplib.SMTP('smtp.gmail.com: 587') server.starttls() # Login Credentials for sending the mail server.login(msg['From'], password) # send the message via the server. server.sendmail(msg['From'], msg['To'], msg.as_string()) server.quit() print ("successfully sent email to {}".format(msg['To']))
بجای password، رمز عبور ایمیل خود را قرار میدهیم و مقادیر msg[‘From’] و msg[‘To’] را نیز با آدرسهای ایمیل مورد نظر خود جایگزین میکنیم.
ساخت یک ایمیل به همراه پیوست و ارسال آن
در این قسمت قصد داریم یک ایمیل به همراه یک عکس ایجاد کرده و آن را ارسال کنیم. فرآیند ارسال آن بسیار شبیه به فرآیند حالت قبل است:
۱. یک شیء SMTP برای اتصال به سرور ایجاد میکنیم.
۲. وارد حساب کاربری خود میشویم.
۳. مشخصات ورود و سرآیند پیام خود را تعریف میکنیم.
۴. یک شیء پیام از نوع MIMEMultipart ایجاد کرده و سرآیندهای تعریف شده در مرحلهی قبل (From، To، Subject و …) را به آن اضافه میکنیم.
۵. تصویر مورد نظر را به شیء MIMEMultipart اضافه میکنیم.
۶. در نهایت پیام را ارسال میکنیم.
کد فرآیند بالا به صورت زیر نوشته میشود:
from email.mime.multipart import MIMEMultipart from email.MIMEImage import MIMEImage from email.mime.text import MIMEText import smtplib # create message object instance msg = MIMEMultipart() # setup the parameters of the message password = "your_password" msg['From'] = "your_address" msg['To'] = "to_address" msg['Subject'] = "Photos" # attach image to message body msg.attach(MIMEImage(file("zth.jpg").read())) # create server server = smtplib.SMTP('smtp.gmail.com: 587') server.starttls() # Login Credentials for sending the mail server.login(msg['From'], password) # send the message via the server. server.sendmail(msg['From'], msg['To'], msg.as_string()) server.quit() print ("successfully sent email to {}".format(msg['To']))
کلاس MIMEImage زیر مجموعهای از MIMENonMultipart است که برای ایجاد اشیاء MIME از نوع Image استفاده میشود. سایر کلاسها شامل MIMEMessage و MIMEAudio میباشد.
به طور کلی در این مقاله بطور خلاصه با نحوهی ارسال یک ایمیل با پایتون آشنا شدیم. این عمل را با استفاده از کتابخانهی smtplib انجام دادیم. شما میتوانید مستندات کامل این کتابخانه را در اینجا مشاهده کرده و با سایر قابلیتهای آن آشنا شوید. همچنین از اینجا میتوانید بیشتر در مورد email.mime بخوانید.
مطالب زیر را حتما مطالعه کنید
آشنایی با توابع در پایتون
راه اندازی Django به همراه Postgresql، Nginx و Gunicorn
آشنایی با حلقه ها در پایتون
آشنایی با رشته در پایتون
برنامه نویسی چند نخی در پایتون
تولید اعداد Random با Python
1 Comment
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
سلام سایتتون خیلی خوبه لطفا ادامه بدین آموزشاتونو 🙂