justapi — /docs

Mailer sends emails over SMTP. It supports synchronous and asynchronous sending, plus Jinja2 templates.

Setup

from justapi import JustAPIApp, Mailer

app = JustAPIApp()

mailer = Mailer(
    host="smtp.example.com",
    port=587,
    username="user@example.com",
    password="secret",
    use_tls=True,
    default_from="noreply@example.com",
    default_from_name="My App",
)

Send Email

@app.post("/send")
def send_email():
    mailer.send(
        to="recipient@example.com",
        subject="Hello",
        body="This is the plain text body",
        html="<h1>Hello</h1><p>This is the HTML body</p>",
    )
    return {"status": "sent"}

Async Send

@app.post("/send-async")
async def send_email_async(background_tasks: BackgroundTasks):
    background_tasks.add_task(
        mailer.send_async,
        to="recipient@example.com",
        subject="Hello",
        body="Sent asynchronously",
    )
    return {"status": "queued"}

Send with Template

mailer = Mailer(
    host="smtp.example.com",
    port=587,
    templates="templates/email",
)

@app.post("/send-template")
def send_welcome():
    mailer.send_template(
        template_name="welcome.html",
        to="user@example.com",
        subject="Welcome!",
        context={"name": "Alice"},
    )
    return {"status": "sent"}

Parameters

Parameter Type Default Description
host str SMTP server hostname
port int 587 SMTP port
username str None Auth username
password str None Auth password
use_tls bool True Enable TLS
default_from str None Default sender email
default_from_name str None Default sender name
templates str None Directory for Jinja2 email templates

JustAPI v2.0.9 — Open Source MIT License · Built with WebTUI · GitHub

NORMAL master justapi/docs
utf-8 Top 1:1