ارسال ایمیل با پایتون
در این ویدیو با نحوه ارسال ایمیل با پایتون آشنا خواهید شد. پایتون از ماژول smtplib برای اتصال به سرویس دهندگان ایمیل استفاده میکند. این پکیج جزو کتابخانه استاندارد پایتون بوده و نیاز به نصب ندارد. ما به راحتی می توانیم فرآیند ارسال ایمیل با استفاده از پایتون را خودکار کنیم. ارسال ایمیل با پایتون زمانی مفید است که بخواهید محتوای مشابه را بارها و بارها ارسال کنید. در این آموزش ما از سرور Gmail برای ارسال ایمیل با پایتون استفاده میکنیم اما همین اصول در مورد سایر سرویسهای ایمیل نیز صدق میکند.
# سرور SMTP پایتون
برای اینکه بتوانید با پایتون اقدام به ارسال ایمیل بکنید، نیاز هست که از ماژول SMTP استفاده کنید. وظیفه ماژول SMTP پایتون مدیریت اتصال به سرویس دهندگان ایمیل خارجی مانند gmail است. در اینترنت هر برنامه ای که ایمیل ها را مدیریت میکند Mail server نام دارد. پروتکل smtp نیز یک روش ساده برای انتقال و مسیریابی ایمیل ها بین سرورهای ایمیل است. پروتکل smtp یک استاندارد اینترنتی محسوب میشود.
در ماژول smtp پایتون، کلاس های مختلفی وجود دارد که میتوانید با وارد کردن اطلاعات اقدام به ارسال ایمیل کنید. اما برای تامین امنیت، پیشنهاد میشود که از کلاس SMTP_SSL استفاده کنید که از رمزنگاری ssl برای ارسال ایمیل استفاده میکند. برای استفاده از ماژول SMTP ابتدا آن را ایمپورت کنید:
import smtplib
سپس اطلاعاتی که برای اتصال به سرویس دهنده خارجی نیاز دارید را داخل متغیر ذخیره کنید:
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'your@email.com'
EMAIL_HOST_PASSWORD = 'your_password'
EMAIL_PORT_SSL = 465
حالا میتوانید از کلاس های این ماژول استفاده کنید. برای استفاده از این کلاس ها باید از آنها یک آبجکت جدید ایجاد کنید. برای مثال، ساختار کلاس SMTP به شکل زیر است:
SMTP(host='', port=0, local_hostname=None, [timeout, ]source_address=None)
شما میتوانید به شکل های مختلفی از این کلاس ها استفاده کنید اما پیشنهاد میشود که از این کلاس ها به شکل یک context manager استفاده کنید تا بعد از اینکه ایمیل را ارسال کردید،اتصال شما به سرور بسته شود. به مثال زیر دقت کنید:
with smtplib.SMTP_SSL(EMAIL_HOST, EMAIL_PORT_SSL) as server:
server.login(EMAIL_HOST_USER, EMAIL_HOST_PASSWORD)
server.sendmail(EMAIL_HOST_USER, 'target@email.com', 'your message')
در قطعه کد بالا، بعد از اینکه به هاست سرور ایمیل متصل شدیم، با متد login اطلاعات اعتبارسنجی را به آن سرور ارسال میکنیم تا اجازه ارسال ایمیل را به ما بدهد. سپس با متد sendmail اقدام به ارسال ایمیل کردیم. تابع sendmail به ترتیب آرگومان های کاربر صاحب سرور، ایمیل هدف و پیغام را میگیرد. بعد از اجرا کد بالا، یک ایمیل برای شما ارسال میشود.
ارسال نظر