Flask

Send transactional email from Flask using the MailSetu REST API.

Installation

bash
pip install mailsetu requests

Setup

Store your API key in environment variables and create a client:

python
import os
from mailsetu import MailSetu

client = MailSetu(os.environ["MAILSETU_API_KEY"])

Send email from a Flask route

python
from flask import Flask, request, jsonify
import os
from mailsetu import MailSetu

app = Flask(__name__)
ms = MailSetu(os.environ["MAILSETU_API_KEY"])

@app.route("/send-welcome", methods=["POST"])
def send_welcome():
    data = request.get_json()
    result = ms.emails.send(
        from_="welcome@yourdomain.com",
        to=[data["email"]],
        subject="Welcome!",
        html=f"<p>Hi {data['name']}, welcome aboard!</p>",
    )
    return jsonify({"id": result["id"], "status": result["status"]})

Using environment variables

bash
# .env
MAILSETU_API_KEY=ms_live_your_key_here

# Load in Flask with python-dotenv
# pip install python-dotenv

# app.py
from dotenv import load_dotenv
load_dotenv()