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

معرفی
سلام! 😎
اخیراً از من در مورد نحوه ارسال ایمیل با استفاده از فلاسک و پایتون پرسیده شد، بنابراین فکر کردم که چگونه این کار را انجام دادم و امیدوارم به شما کمک کند. 😃
فعال کردن محیط مجازی
ابتدا باید محیط مجازی را راه اندازی کنیم، این کار از طریق دستورات زیر قابل انجام است:
python3 -m venv env
source env/bin/activate
نصب Dependencies
سپس باید وابستگی ها را نصب کنیم، یک فایل به نام “requirements.txt” ایجاد کنیم و موارد زیر را اضافه کنیم:
flask
برای نصب وابستگی ها دستور زیر را اجرا کنید:
pip install -r requirements.txt
در مرحله بعد می توانیم در واقع شروع به نوشتن کد کنیم. 🙂
کدنویسی سرور
اکنون می توانیم در واقع به کدنویسی سرور ادامه دهیم. فایلی به نام main.py باز کنید و واردهای زیر را اضافه کنید:
from flask import Flask, request
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
در مرحله بعد باید برنامه flask را مقداردهی اولیه کنیم که این کار را می توان با خط زیر انجام داد:
app = Flask(__name__)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
هنگامی که برنامه مقداردهی اولیه شد، باید مسیری را تعریف کنیم که سه پارامتر، آدرسی برای ارسال، موضوع نامه و بدنه اصلی نامه را شامل می شود.
که از طریق موارد زیر قابل انجام است:
@app.route("/send", methods=["POST"])
def send():
email_address = request.form['address']
email_subject = request.form['subject']
email_message = request.form['message']
sender_email = 'youremail'
sender_password = 'your password'
receiver_email = email_address
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = receiver_email
message['Subject'] = email_subject
message.attach(MIMEText(email_message, 'plain'))
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender_email, sender_password)
server.sendmail(sender_email, receiver_email, message.as_string())
server.quit()
return 'Email Sent!'
except Exception as e:
return str(e)
این تابع از سه پارامتر استفاده می کند و ایمیل را با استفاده از یک حساب جی میل ارسال می کند، مطمئن شوید که متغیرها را با خود جایگزین کنید. 👀
در نهایت فقط باید تابع main را مقداردهی اولیه کنیم:
if __name__ == "__main__":
app.run(debug=True)
انجام شده! 😆
سرور را می توان با دستور curl زیر تست کرد:
curl --location --request POST 'localhost:5000/send' \
--form 'address=example@gmail.com' \
--form 'subject=Test email' \
--form 'message=Hello, this is a test email sent using curl and Flask!'
پس از اجرای دستور بالا (فراموش نکنید آدرس را تغییر دهید)، باید نامه را در صندوق ورودی خود مشاهده کنید. 🙂
نتیجه
در اینجا من به شما نشان دادم که چگونه با استفاده از flask، python و gmail ایمیل ارسال کنید.
من واقعاً تعجب کردم که شما نیازی به کدنویسی آنقدر ندارید. 😄
امیدوارم این برای شما مفید بوده باشد. 😁
مثل همیشه می توانید کد منبع این مثال را از طریق Github پیدا کنید:
https://github.com/ethand91/flask-email
کد نویسی مبارک! 😎
مثل من کار می کنم؟ من در مورد موضوعات مختلف پست می کنم، اگر مایل به دیدن بیشتر هستید لطفاً من را لایک و دنبال کنید.
همچنین من عاشق قهوه هستم.
اگر به دنبال یادگیری الگوهای الگوریتم در مصاحبه کدنویسی هستید، دوره زیر را توصیه می کنم