ارسال ایمیل با پایتون

امیرحسین بیگدلو June 2024

در این ویدیو با نحوه ارسال ایمیل با پایتون آشنا خواهید شد. پایتون از ماژول 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 به ترتیب آرگومان های کاربر صاحب سرور، ایمیل هدف و پیغام را میگیرد. بعد از اجرا کد بالا،‌ یک ایمیل برای شما ارسال میشود.

ویدیوهای مشابه



ارسال نظر


مهدی

1 سال قبل پاسخ به نظر

سلام برای من توی حساب گوگل بخش اپ پسورد نیست

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
اعتبارسنجی دو مرحله رو فعال کن

مصطفی

1 سال قبل پاسخ به نظر

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

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
منظورتون از هشدار پیام چیه؟


مصطفی

1 سال قبل

مثل ارسال ایمیل بتونیم پیام ارسال کنیم مثلا مرکز پیام کاوه نگار باشه همچین چیزی


امیرحسین بیگدلو

1 سال قبل

ارسال پیامک رو توی دوره‌های جنگو توضیح دادم

علی معصومیان

1 سال قبل پاسخ به نظر

ممنون از آموزش خوبتون مشکلم رو حل کرد .♥♥♥♥

ارسال نظر



ali

2 سال قبل پاسخ به نظر

سلام.
من کدهای بالا را دقیق می زنم ولی خطای
ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:997)
می ده.

به خاطر وضعیت نت هست که اینجوری؟؟؟؟

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
نمیدونم


Md

1 سال قبل

منم همین ارورو دارم

mohammad

2 سال قبل پاسخ به نظر

سلام ببخشید من هر کاری میکنم به این خطا بر میخورم(socket.gaierror: [Errno 11001] getaddrinfo failed) اگه میشه راهنماییم کنید لطفا...

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
نمیدونم


علی

1 سال قبل

آره منم همین مشکلو دارم

مونگارد