Flask অ্যাপ্লিকেশন থেকে ইমেইল পাঠানোর জন্য Flask-Mail এক্সটেনশন ব্যবহার করা হয়। Flask-Mail সিম্পল ইমেইল পাঠানোর জন্য একটি শক্তিশালী টুল সরবরাহ করে, যা SMTP সার্ভারের মাধ্যমে কাজ করে। এটি ডেভেলপমেন্ট এবং প্রোডাকশন উভয় পরিবেশে ইমেইল পাঠানোর জন্য ব্যবহৃত হয়।
এই টিউটোরিয়ালে আমরা দেখব কীভাবে Flask-Mail ব্যবহার করে Flask অ্যাপ্লিকেশন থেকে ইমেইল পাঠানো যায়।
১. Flask-Mail ইনস্টলেশন
প্রথমে, Flask-Mail ইনস্টল করতে হবে।
pip install flask-mail
২. Flask অ্যাপে Flask-Mail কনফিগারেশন
এখন, Flask অ্যাপে Flask-Mail কনফিগার করতে হবে। সাধারণত, ইমেইল পাঠানোর জন্য SMTP সার্ভারের তথ্য যেমন SMTP সার্ভার হোস্ট, পোর্ট, ইমেইল অ্যাড্রেস, এবং পাসওয়ার্ড প্রয়োজন হয়। আমরা Gmail ব্যবহার করার উদাহরণ দেখব।
from flask import Flask, render_template, request, redirect, url_for
from flask_mail import Mail, Message
app = Flask(__name__)
# Flask-Mail কনফিগারেশন
app.config['MAIL_SERVER'] = 'smtp.gmail.com' # Gmail SMTP সার্ভার
app.config['MAIL_PORT'] = 465 # SMTP পোর্ট (SSL)
app.config['MAIL_USE_TLS'] = False # TLS ব্যবহার না করা
app.config['MAIL_USE_SSL'] = True # SSL ব্যবহার করা
app.config['MAIL_USERNAME'] = 'your_email@gmail.com' # আপনার Gmail অ্যাড্রেস
app.config['MAIL_PASSWORD'] = 'your_password' # আপনার Gmail পাসওয়ার্ড
app.config['MAIL_DEFAULT_SENDER'] = 'your_email@gmail.com' # ডিফল্ট প্রেরক
# Flask-Mail ইনিশিয়ালাইজ করা
mail = Mail(app)
# একটি রুট এবং ভিউ ফাংশন তৈরি করা
@app.route("/send_email", methods=["GET", "POST"])
def send_email():
if request.method == 'POST':
recipient = request.form['email']
subject = request.form['subject']
body = request.form['body']
# Message তৈরি করা
msg = Message(subject,
recipients=[recipient],
body=body)
# ইমেইল পাঠানো
try:
mail.send(msg)
return "ইমেইল সফলভাবে পাঠানো হয়েছে!"
except Exception as e:
return str(e)
return render_template("send_email.html")
if __name__ == "__main__":
app.run(debug=True)
এখানে:
MAIL_SERVER: SMTP সার্ভারের হোস্ট নাম (এখানে Gmail ব্যবহার করা হয়েছে)।MAIL_PORT: SMTP পোর্ট (Gmail এর জন্য 465 পোর্ট SSL এর জন্য ব্যবহৃত হয়)।MAIL_USE_TLSএবংMAIL_USE_SSL: TLS এবং SSL এর সুরক্ষা সুবিধা নির্ধারণ করে।MAIL_USERNAMEএবংMAIL_PASSWORD: আপনার Gmail অ্যাড্রেস এবং পাসওয়ার্ড।MAIL_DEFAULT_SENDER: ডিফল্ট প্রেরকের ইমেইল অ্যাড্রেস।
৩. HTML ফর্ম তৈরি করা
এখন একটি সিম্পল HTML ফর্ম তৈরি করতে হবে যাতে ব্যবহারকারী ইমেইল ঠিকানা, বিষয় এবং বার্তা দিতে পারে।
<!-- send_email.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Send Email</title>
</head>
<body>
<h2>ইমেইল পাঠান</h2>
<form action="/send_email" method="POST">
<label for="email">প্রাপক ইমেইল:</label>
<input type="email" id="email" name="email" required><br><br>
<label for="subject">বিষয়:</label>
<input type="text" id="subject" name="subject" required><br><br>
<label for="body">বার্তা:</label>
<textarea id="body" name="body" rows="4" required></textarea><br><br>
<button type="submit">ইমেইল পাঠান</button>
</form>
</body>
</html>
এখানে:
email: প্রাপকের ইমেইল ঠিকানা।subject: ইমেইলের বিষয়।body: ইমেইল বার্তা।
৪. Gmail থেকে ইমেইল পাঠানো
আপনি যদি Gmail ব্যবহার করেন, তবে আপনাকে Less secure apps অথবা App password ব্যবহারের অনুমতি দিতে হতে পারে:
- Less Secure Apps: Gmail অ্যাকাউন্টে লগইন করে "Less secure apps" চালু করতে হবে। (এটি নিরাপত্তা কারণে ২০২০ সালের পর নিষ্ক্রিয় হয়ে গেছে, তাই আপনি App Password ব্যবহার করতে পারেন।)
- App Password: Gmail অ্যাকাউন্টের Security সেটিংস থেকে App Password তৈরি করুন এবং সেই পাসওয়ার্ডটি Flask অ্যাপের
MAIL_PASSWORDসেটিংসে ব্যবহার করুন।
৫. ইমেইল পাঠানো
এখন আপনি http://127.0.0.1:5000/send_email URL এ গিয়ে ইমেইল ফর্মটি পূর্ণ করে ইমেইল পাঠাতে পারবেন। ইমেইল পাঠানোর পর সাফল্যের বার্তা বা কোনো ত্রুটি মেসেজ প্রদর্শিত হবে।
৬. বিকল্প SMTP সার্ভার ব্যবহার
Flask-Mail ব্যবহার করে আপনি অন্য যেকোনো SMTP সার্ভার যেমন SendGrid, Mailgun, Amazon SES ইত্যাদির মাধ্যমে ইমেইল পাঠাতে পারেন। এতে সাধারণত SMTP সার্ভারের জন্য প্রাপ্ত Host, Port, Username, Password ব্যবহার করা হয়।
উদাহরণস্বরূপ, SendGrid ব্যবহার করতে:
app.config['MAIL_SERVER'] = 'smtp.sendgrid.net'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = 'your_sendgrid_username'
app.config['MAIL_PASSWORD'] = 'your_sendgrid_password'
Flask-Mail ব্যবহার করে Flask অ্যাপ্লিকেশনের মাধ্যমে ইমেইল পাঠানো সহজ এবং কার্যকর। আপনি Gmail বা অন্য SMTP সার্ভার ব্যবহার করে ইমেইল পাঠাতে পারেন। Flask-Mail এক্সটেনশন ইমেইল পাঠানোর প্রক্রিয়াকে সরল করে এবং ইমেইল পাঠানোর সময় সহজ কনফিগারেশন দেয়। Flask অ্যাপের মাধ্যমে ইমেইল ফিচার ইন্টিগ্রেট করার জন্য এটি একটি শক্তিশালী পদ্ধতি।
Read more