HTML ইমেইল এবং Attachments ব্যবস্থাপনা

Flask এবং Email Integration - ফ্লাস্ক (Flask) - Web Development

264

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 ইমেইল কাস্টমাইজ করা, ফাইল অ্যাটাচমেন্ট যোগ করা, এবং ইমেইল সিস্টেমকে সিকিউর ও কার্যকরী করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...