Flask অ্যাপে Email Integration একটি গুরুত্বপূর্ণ ফিচার হতে পারে, বিশেষ করে যখন আপনি ইউজারদের রেজিস্ট্রেশন, পাসওয়ার্ড রিসেট, অথবা অন্যান্য নোটিফিকেশন পাঠাতে চান। Flask-এ ইমেইল পাঠানোর জন্য সাধারণত Flask-Mail লাইব্রেরি ব্যবহার করা হয়। এটি Flask অ্যাপ্লিকেশনের সাথে ইমেইল ফাংশনালিটি যুক্ত করতে সহায়ক।
এখানে আমরা Flask অ্যাপে ইমেইল ইন্টিগ্রেশন সেটআপ করার প্রক্রিয়া আলোচনা করব।
১. Flask-Mail ইনস্টলেশন
প্রথমে Flask-Mail প্যাকেজটি ইনস্টল করতে হবে:
pip install flask-mail
২. Flask অ্যাপ্লিকেশনে Email Configuration
Flask-Mail ব্যবহার করার জন্য প্রথমে আপনার Flask অ্যাপে ইমেইল কনফিগারেশন যোগ করতে হবে।
from flask import Flask, render_template_string
from flask_mail import Mail, Message
app = Flask(__name__)
# Flask-Mail কনফিগারেশন
app.config['MAIL_SERVER'] = 'smtp.gmail.com' # ইমেইল সার্ভার
app.config['MAIL_PORT'] = 587 # SMTP পোর্ট
app.config['MAIL_USE_TLS'] = True # TLS সুরক্ষা ব্যবহার
app.config['MAIL_USE_SSL'] = False # 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)
if __name__ == "__main__":
app.run(debug=True)
এখানে:
MAIL_SERVER: SMTP সার্ভারের ঠিকানা (উদাহরণ: Gmail, Outlook, ইত্যাদি)।MAIL_PORT: SMTP সার্ভারের পোর্ট (গুগল এর জন্য 587)।MAIL_USE_TLS: TLS সুরক্ষা ব্যবহারের জন্য True।MAIL_USERNAMEএবংMAIL_PASSWORD: আপনার ইমেইল অ্যাকাউন্টের লগইন তথ্য।
৩. ইমেইল পাঠানোর ফাংশন তৈরি করা
Flask অ্যাপে ইমেইল পাঠানোর জন্য flask_mail এর Message ক্লাস ব্যবহার করা হয়।
@app.route("/send_email")
def send_email():
msg = Message(
'Hello from Flask!', # ইমেইল বিষয়
recipients=['recipient@example.com'] # প্রাপকের ইমেইল
)
msg.body = 'This is a test email sent from Flask app.' # ইমেইলের মেসেজ
msg.html = '<b>This is a test email sent from Flask app.</b>' # HTML ফরম্যাটের মেসেজ
try:
# ইমেইল পাঠানো
mail.send(msg)
return "Email sent successfully!"
except Exception as e:
return f"Error: {str(e)}"
এখানে:
Message(): এটি একটি ইমেইল তৈরি করার জন্য ব্যবহৃত হয়।- প্রথম আর্গুমেন্টে ইমেইলের বিষয় (Subject) দেওয়া হয়।
recipientsএ প্রাপকের ইমেইল অ্যাড্রেস দেওয়া হয়।msg.body: প্লেইন টেক্সট ফরম্যাটে ইমেইল মেসেজ।msg.html: HTML ফরম্যাটে ইমেইল মেসেজ (যদি HTML ফরম্যাটে পাঠাতে চান)।
৪. Flask অ্যাপে ইমেইল পাঠানোর কার্যকারিতা
এখন আপনি Flask অ্যাপ চালানোর পরে /send_email রুটে যাওয়ার মাধ্যমে ইমেইল পাঠাতে পারবেন। উদাহরণ:
http://127.0.0.1:5000/send_email
এটি সফল হলে "Email sent successfully!" বার্তা দেখতে পাবেন। প্রাপককে ইমেইলটি পাঠানো হবে।
৫. Email with Attachments
Flask-Mail ব্যবহার করে আপনি ইমেইলে অ্যাটাচমেন্টও পাঠাতে পারেন। এটি করার জন্য Message ক্লাসের attach() মেথড ব্যবহার করতে হয়।
from flask_mail import Message
from io import BytesIO
@app.route("/send_attachment")
def send_attachment():
msg = Message('Email with Attachment',
recipients=['recipient@example.com'])
msg.body = 'This is a test email with attachment.'
# অ্যাটাচমেন্ট তৈরি করা
with open('file.txt', 'rb') as f:
file_data = f.read()
msg.attach('file.txt', 'text/plain', file_data)
try:
# ইমেইল পাঠানো
mail.send(msg)
return "Email with attachment sent successfully!"
except Exception as e:
return f"Error: {str(e)}"
এখানে:
msg.attach(): এই মেথডটি ফাইল অ্যাটাচমেন্ট করার জন্য ব্যবহৃত হয়।- প্রথম আর্গুমেন্টে ফাইলের নাম, দ্বিতীয় আর্গুমেন্টে MIME টাইপ, এবং তৃতীয় আর্গুমেন্টে ফাইলের কনটেন্ট দেওয়া হয়।
৬. Flask এবং SendGrid Integration
Flask অ্যাপ্লিকেশনটি আপনি তৃতীয় পক্ষের সেবা যেমন SendGrid, Mailgun, Amazon SES ইত্যাদির মাধ্যমে ইমেইল পাঠাতে পারেন। এ ধরনের সেবা সাধারণত উচ্চ ভলিউমের ইমেইল পাঠানোর জন্য ব্যবহৃত হয়। নিচে SendGrid এর উদাহরণ দেওয়া হলো:
ধাপ ১: SendGrid Python লাইব্রেরি ইনস্টল করুন
pip install sendgrid
ধাপ ২: SendGrid দিয়ে ইমেইল পাঠানো
import sendgrid
from sendgrid.helpers.mail import Mail
@app.route("/send_sendgrid_email")
def send_sendgrid_email():
sg = sendgrid.SendGridAPIClient(api_key='your-sendgrid-api-key')
message = Mail(
from_email='your-email@example.com',
to_emails='recipient@example.com',
subject='Hello from Flask using SendGrid!',
plain_text_content='This is a test email sent via SendGrid.'
)
try:
response = sg.send(message)
return f"Email sent successfully! Status Code: {response.status_code}"
except Exception as e:
return f"Error: {str(e)}"
এখানে:
sendgrid.SendGridAPIClient: SendGrid API ক্লায়েন্ট ব্যবহার করে ইমেইল পাঠানো হয়েছে।Mail: ইমেইল তৈরি করা এবং পাঠানো হয়েছে।
Flask-এ Email Integration করা খুবই সহজ এবং প্রয়োজনীয় ফিচার হতে পারে বিভিন্ন ধরণের নোটিফিকেশন এবং অথেনটিকেশন সিস্টেমে। Flask-Mail ব্যবহার করে আপনি সহজে ইমেইল পাঠাতে পারেন, এবং SendGrid বা অন্যান্য তৃতীয় পক্ষের সেবা ব্যবহার করে উচ্চ ভলিউমের ইমেইল পাঠাতে পারবেন। Flask অ্যাপ্লিকেশনে ইমেইল পাঠানোর কার্যকারিতা যোগ করা অ্যাপ্লিকেশনটির শক্তি এবং কার্যকারিতা বাড়ায়।
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 অ্যাপের মাধ্যমে ইমেইল ফিচার ইন্টিগ্রেট করার জন্য এটি একটি শক্তিশালী পদ্ধতি।
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 ইমেইল কাস্টমাইজ করা, ফাইল অ্যাটাচমেন্ট যোগ করা, এবং ইমেইল সিস্টেমকে সিকিউর ও কার্যকরী করা সম্ভব।
Flask অ্যাপ্লিকেশনে Email Sending, Error Handling, এবং Custom Email Templates ব্যবহৃত হয় বিভিন্ন কার্যক্রম পরিচালনার জন্য, যেমন ব্যবহারকারীদেরকে নির্দিষ্ট নোটিফিকেশন পাঠানো, এপ্লিকেশনে ত্রুটি (error) হ্যান্ডলিং, এবং কাস্টমাইজড ইমেইল টেমপ্লেট ব্যবহার করে আরও পেশাদারী নোটিফিকেশন পাঠানো। এই টিউটোরিয়ালে Flask-এ Email Sending, Error Handling, এবং Custom Email Templates ব্যবহার করার পদ্ধতি দেখানো হবে।
১. Flask-এ Email Sending (SMTP ব্যবহার)
Flask-এ ইমেইল পাঠানোর জন্য SMTP প্রোটোকল ব্যবহার করা হয়। Flask-এ ইমেইল পাঠানোর জন্য Flask-Mail এক্সটেনশন খুবই জনপ্রিয়।
ধাপ ১: Flask-Mail ইনস্টল করা
Flask-এ ইমেইল পাঠানোর জন্য Flask-Mail ইনস্টল করতে হবে।
pip install flask-mail
ধাপ ২: Flask অ্যাপে Mail কনফিগারেশন
এখন Flask অ্যাপে ইমেইল কনফিগারেশন সেটআপ করতে হবে।
from flask import Flask, render_template_string
from flask_mail import Mail, Message
app = Flask(__name__)
# Flask-Mail কনফিগারেশন
app.config['MAIL_SERVER'] = 'smtp.gmail.com' # SMTP সার্ভার
app.config['MAIL_PORT'] = 587 # SMTP পোর্ট
app.config['MAIL_USE_TLS'] = True # TLS ব্যবহৃত হবে
app.config['MAIL_USE_SSL'] = False
app.config['MAIL_USERNAME'] = 'your_email@gmail.com' # আপনার ইমেইল
app.config['MAIL_PASSWORD'] = 'your_email_password' # আপনার ইমেইল পাসওয়ার্ড
app.config['MAIL_DEFAULT_SENDER'] = 'your_email@gmail.com' # ডিফল্ট প্রেরক
mail = Mail(app) # Flask-Mail ইনিশিয়ালাইজ করা
@app.route('/')
def index():
return 'Flask Email Example'
@app.route('/send-email')
def send_email():
msg = Message('Hello from Flask', recipients=['recipient_email@example.com'])
msg.body = 'This is a test email sent from Flask application.'
msg.html = "<b>This is an HTML email</b>"
mail.send(msg)
return 'Email Sent!'
if __name__ == '__main__':
app.run(debug=True)
এখানে:
MAIL_SERVER: আপনার SMTP সার্ভারের ঠিকানা। উদাহরণস্বরূপ, Gmail-এর জন্যsmtp.gmail.com।MAIL_PORT: SMTP পোর্ট নম্বর (যেমন, Gmail এর জন্য 587)।MAIL_USE_TLS: এটি TLS এনক্রিপশন সক্রিয় করবে।MAIL_USERNAMEএবংMAIL_PASSWORD: আপনার ইমেইল এবং পাসওয়ার্ড।MAIL_DEFAULT_SENDER: ডিফল্ট প্রেরক ইমেইল অ্যাড্রেস।
ধাপ ৩: ইমেইল পাঠানো
আপনার ব্রাউজারে http://127.0.0.1:5000/send-email URL খুললে একটি ইমেইল পাঠানো হবে, যা recipient_email@example.com এ পৌঁছাবে।
২. Error Handling in Flask
Flask-এ Error Handling ব্যবহারের মাধ্যমে অ্যাপ্লিকেশন চলাকালে যে কোন ত্রুটি সঠিকভাবে হ্যান্ডেল করা যায়। Flask-এ errorhandler ডেকোরেটর ব্যবহার করে নির্দিষ্ট HTTP স্ট্যাটাস কোডের জন্য কাস্টম ত্রুটি মেসেজ প্রদান করা যায়।
ধাপ ১: Error Handler কনফিগার করা
@app.errorhandler(404)
def not_found_error(error):
return render_template('404.html'), 404
@app.errorhandler(500)
def internal_error(error):
return render_template('500.html'), 500
এখানে:
@app.errorhandler(404): 404 ত্রুটি (পেজ পাওয়া যায়নি) হলে কাস্টম ত্রুটি মেসেজ রিটার্ন করবে।@app.errorhandler(500): 500 ত্রুটি (সার্ভার সমস্যা) হলে কাস্টম ত্রুটি মেসেজ রিটার্ন করবে।
ধাপ ২: কাস্টম ত্রুটি পৃষ্ঠার জন্য HTML টেমপ্লেট তৈরি করা
404.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>404 - Page Not Found</title>
</head>
<body>
<h1>Sorry, this page doesn't exist!</h1>
</body>
</html>
500.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>500 - Internal Server Error</title>
</head>
<body>
<h1>Oops! Something went wrong on our side.</h1>
</body>
</html>
এটি অ্যাপ্লিকেশন চলাকালে যদি 404 বা 500 ত্রুটি হয়, তাহলে কাস্টম পেজ দেখাবে।
৩. Flask-এ Custom Email Templates ব্যবহার করা
Flask-এ Jinja2 টেমপ্লেট ইঞ্জিন ব্যবহার করে কাস্টম HTML ইমেইল তৈরি করা যায়, যা ইমেইল পাঠানোর সময় ব্যবহৃত হয়। ইমেইল টেমপ্লেটের মাধ্যমে আপনার ইমেইলকে আরও পেশাদারী এবং কাস্টমাইজড করা সম্ভব।
ধাপ ১: Custom Email Template তৈরি করা
templates/email_template.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ title }}</title>
</head>
<body>
<h1>{{ message }}</h1>
<p>Click <a href="{{ link }}">here</a> for more information.</p>
</body>
</html>
এখানে, আমরা {{ title }}, {{ message }}, এবং {{ link }} ব্যবহার করছি যা Flask টেমপ্লেট ইঞ্জিন দ্বারা ডাইনামিকভাবে পূর্ণ হবে।
ধাপ ২: Flask অ্যাপে কাস্টম টেমপ্লেট পাঠানো
@app.route('/send-email-template')
def send_email_template():
msg = Message('Hello from Flask', recipients=['recipient_email@example.com'])
# Custom template rendering
msg.html = render_template('email_template.html', title='Welcome', message='Thank you for joining us!', link='http://example.com')
mail.send(msg)
return 'Email Sent with Custom Template!'
এখানে:
render_template(): এটি Jinja2 টেমপ্লেট ইঞ্জিনের মাধ্যমে HTML টেমপ্লেট রেন্ডার করে, এবং ডাইনামিকভাবে title, message, এবং link সেগুলি ইমেইলে যুক্ত করা হয়।
Flask-এ Email Sending, Error Handling, এবং Custom Email Templates ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনকে আরও পেশাদারী এবং কার্যকরী করতে পারেন। Flask-Mail ব্যবহার করে ইমেইল পাঠানো সহজ, Error Handling Flask-এ অ্যাপ্লিকেশন সিকিউরিটির জন্য প্রয়োজনীয়, এবং Custom Email Templates ব্যবহার করে ইমেইলকে কাস্টমাইজ করা যায় যাতে এটি আরও আকর্ষণীয় এবং পেশাদারী দেখায়। Flask-এ এই ফিচারগুলি ব্যবহার করলে আপনার অ্যাপ্লিকেশনটি আরও পূর্ণাঙ্গ এবং সিকিউর হয়ে উঠবে।
Read more