برنامه نویسی

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

معرفی

سلام! 😎
اخیراً از من در مورد نحوه ارسال ایمیل با استفاده از فلاسک و پایتون پرسیده شد، بنابراین فکر کردم که چگونه این کار را انجام دادم و امیدوارم به شما کمک کند. 😃


فعال کردن محیط مجازی

ابتدا باید محیط مجازی را راه اندازی کنیم، این کار از طریق دستورات زیر قابل انجام است:

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

کد نویسی مبارک! 😎


مثل من کار می کنم؟ من در مورد موضوعات مختلف پست می کنم، اگر مایل به دیدن بیشتر هستید لطفاً من را لایک و دنبال کنید.
همچنین من عاشق قهوه هستم.

«برایم قهوه بخر»

اگر به دنبال یادگیری الگوهای الگوریتم در مصاحبه کدنویسی هستید، دوره زیر را توصیه می کنم

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا