Flask অ্যাপ্লিকেশনগুলিতে HTML ইমেইল এবং Attachments প্রেরণ করা অত্যন্ত গুরুত্বপূর্ণ একটি ফিচার, বিশেষ করে যখন আপনি ফর্ম সাবমিশন, ইনভয়েস, পাসওয়ার্ড রিসেট, ইত্যাদি জন্য ইমেইল পাঠাতে চান। Flask-এ এই ফিচারটি সহজেই বাস্তবায়ন করা যায়। এই টিউটোরিয়ালে আমরা দেখব কীভাবে Flask দিয়ে HTML ইমেইল পাঠানো যায় এবং ফাইল অ্যাটাচমেন্ট যোগ করা যায়।
Flask এ ইমেইল পাঠানোর জন্য প্রয়োজনীয় প্যাকেজ
Flask-এ ইমেইল পাঠানোর জন্য প্রধানত Flask-Mail প্যাকেজ ব্যবহৃত হয়। Flask-Mail ইমেইল পাঠানোর জন্য Flask অ্যাপ্লিকেশনকে মেইল সার্ভারের সাথে সংযুক্ত করে এবং সহজেই ইমেইল পাঠানোর সুবিধা দেয়।
Flask-Mail ইনস্টল করা
pip install flask-mail
Flask অ্যাপে HTML ইমেইল পাঠানোর কনফিগারেশন
ধাপ ১: Flask অ্যাপে Flask-Mail কনফিগারেশন
Flask অ্যাপ্লিকেশনে Flask-Mail কনফিগার করার জন্য প্রথমে নিচের মতো কনফিগারেশন সেট করতে হবে।
from flask import Flask, render_template, request
from flask_mail import Mail, Message
app = Flask(__name__)
# Flask-Mail কনফিগারেশন
app.config['MAIL_SERVER'] = 'smtp.gmail.com' # মেইল সার্ভার (যেমন Gmail)
app.config['MAIL_PORT'] = 465 # পোর্ট
app.config['MAIL_USE_SSL'] = True # SSL ব্যবহার
app.config['MAIL_USERNAME'] = 'your_email@gmail.com' # আপনার মেইল
app.config['MAIL_PASSWORD'] = 'your_email_password' # আপনার মেইল পাসওয়ার্ড
app.config['MAIL_DEFAULT_SENDER'] = 'your_email@gmail.com' # ডিফল্ট প্রেরক
# Flask-Mail ইনস্ট্যান্স
mail = Mail(app)
এখানে:
MAIL_SERVER: মেইল সার্ভারের ঠিকানা (যেমন Gmail, Yahoo ইত্যাদি)।MAIL_PORT: মেইল সার্ভারের পোর্ট (যেমন 465 SSL পোর্টের জন্য)।MAIL_USE_SSL: SSL (Secure Socket Layer) ব্যবহারের জন্য সেট করা।MAIL_USERNAMEএবংMAIL_PASSWORD: আপনার মেইল অ্যাকাউন্ট এবং পাসওয়ার্ড।
ধাপ ২: HTML ইমেইল পাঠানো
এখন আমরা একটি ফাংশন তৈরি করব যা HTML ইমেইল পাঠাবে।
@app.route('/send_email', methods=['POST'])
def send_email():
# ইমেইলের বিষয়, প্রাপক, পাঠানোর মেসেজ
subject = "HTML Email Example"
recipient = "recipient_email@example.com"
# HTML কন্টেন্ট তৈরি করা
html_content = render_template('email_template.html', name="John Doe")
# মেসেজ তৈরি করা
msg = Message(subject=subject, recipients=[recipient])
msg.html = html_content # HTML কন্টেন্ট অ্যাসাইন করা
# মেইল পাঠানো
try:
mail.send(msg)
return "ইমেইল সফলভাবে পাঠানো হয়েছে!", 200
except Exception as e:
return str(e), 500
এখানে:
render_template(): Flask টেমপ্লেট ইঞ্জিন ব্যবহার করে HTML কন্টেন্ট রেন্ডার করা।msg.html: HTML কন্টেন্ট ইমেইলে সেট করা।mail.send(msg): ইমেইল পাঠানো।
ধাপ ৩: HTML টেমপ্লেট তৈরি
templates/email_template.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ subject }}</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
<p>আপনার ইমেইল সিস্টেমটি সফলভাবে সেটআপ হয়েছে।</p>
<p>ধন্যবাদ!</p>
</body>
</html>
এখানে:
{{ name }}: Flask-এrender_templateএর মাধ্যমে ভেরিয়েবল পাস করা হচ্ছে।
Flask-এ ইমেইল পাঠানোর জন্য ফাইল অ্যাটাচমেন্ট যোগ করা
ফাইল অ্যাটাচমেন্ট পাঠানোর জন্য Flask-Mail এর মাধ্যমে অ্যাটাচমেন্ট যোগ করা সম্ভব।
ধাপ ৪: ফাইল অ্যাটাচমেন্ট পাঠানো
@app.route('/send_email_with_attachment', methods=['POST'])
def send_email_with_attachment():
subject = "HTML Email with Attachment"
recipient = "recipient_email@example.com"
# HTML কন্টেন্ট তৈরি করা
html_content = render_template('email_template.html', name="John Doe")
# মেসেজ তৈরি করা
msg = Message(subject=subject, recipients=[recipient])
msg.html = html_content
# ফাইল অ্যাটাচমেন্ট যুক্ত করা
with app.open_resource("path/to/your/file.txt") as fp:
msg.attach("file.txt", "text/plain", fp.read())
# মেইল পাঠানো
try:
mail.send(msg)
return "ইমেইল সহ অ্যাটাচমেন্ট সফলভাবে পাঠানো হয়েছে!", 200
except Exception as e:
return str(e), 500
এখানে:
msg.attach(): ফাইল অ্যাটাচমেন্ট যোগ করার জন্য এটি ব্যবহৃত হয়।- প্রথম আর্গুমেন্ট: ফাইলের নাম।
- দ্বিতীয় আর্গুমেন্ট: ফাইলের MIME টাইপ (যেমন,
text/plain,application/pdfইত্যাদি)। - তৃতীয় আর্গুমেন্ট: ফাইলের কনটেন্ট।
Flask অ্যাপ্লিকেশন চালানো
python app.py
এখন, /send_email অথবা /send_email_with_attachment রুটে POST রিকোয়েস্ট পাঠিয়ে HTML ইমেইল এবং ফাইল অ্যাটাচমেন্ট পাঠানো যাবে।
Flask-এ ইমেইল পাঠানোর জন্য Flask-Mail একটি অত্যন্ত সহজ এবং শক্তিশালী প্যাকেজ। HTML ইমেইল এবং Attachments (ফাইল সংযুক্তি) পাঠানো Flask অ্যাপ্লিকেশনে খুবই সহজভাবে সম্পন্ন করা যায়। Flask-এর টেমপ্লেট ইঞ্জিন এবং Flask-Mail এর মাধ্যমে HTML ইমেইল কাস্টমাইজ করা, ফাইল অ্যাটাচমেন্ট যোগ করা, এবং ইমেইল সিস্টেমকে সিকিউর ও কার্যকরী করা সম্ভব।