Sending

Templates that refuse to ship broken

MiniJinja templates with Jinja2-compatible syntax, rendered server-side just before delivery. A missing variable rejects the send instead of mailing a blank placeholder.

Syntax

Jinja you already know

Variable substitution, if-blocks, for-loops, and filters like round, upper, and default. Pass a variables object in the send request and the worker renders the template moments before SMTP delivery, no client-side templating, no pre-rendering step.

<h1>Hello, {{ customer_name }}!</h1>
<p>Order <strong>#{{ order_id }}</strong> is confirmed.</p>
{% if express_shipping %}
<p>Arrives tomorrow.</p>
{% endif %}
Safety

Every change is a version

Each template update creates a new retained version, so rolling back a bad edit is one action, not an archaeology project. And if a send is missing a required variable, it is rejected with a clear error, so euromail never delivers an email with broken placeholders.

Engine
MiniJinja, Jinja2-compatible
Versioning
Every update retained
Rollback
One action in the dashboard
Missing variable
Send rejected, not mangled