SMTP Endpoint

Send transactional email through Lumail from SMTP-only tools

Lumail exposes an SMTP submission endpoint for tools that cannot call the HTTP API directly. It is intended for low-volume transactional email such as auth codes, magic links, password resets, and operational messages.

If you are setting this up for an organization, start with the SMTP transactional email tutorial. It covers verified domains, API tokens, provider settings, and test sends.

For systems that support HTTP hooks, prefer POST /api/v1/emails. The HTTP API has a clearer request/response model and is easier to debug. The SMTP endpoint exists for compatibility with SMTP-only providers.

Under the hood, the SMTP endpoint is a thin adapter: it authenticates with your Lumail API token, parses the SMTP/MIME message, then forwards the request to POST /api/v1/emails. The HTTP API remains responsible for token validation, verified sending-domain checks, quotas, and priority queueing.

Connection Settings

SettingValue
Hostsmtp.lumail.io
Port587
SecuritySTARTTLS
UsernameAny non-empty value, for example your org slug
PasswordA Lumail API token from Settings -> API Tokens

The username is used as a log label. The password must be a Lumail API token. The From address must use a verified Lumail sending domain in the same organization as the API token.

Priority

SMTP messages are treated as transactional by default. They are queued on Lumail's transactional priority QStash lane, separate from campaign and newsletter batches.

The default queue lane capacity is 40 emails per second for priority messages and 40 emails per second for bulk campaign messages. This separation prevents a large newsletter send from blocking OTP or magic-link delivery.

Message Rules

RuleDefault
Recipients1 recipient per SMTP message
AttachmentsRejected
Size limit1 MB
TrackingLink and open tracking disabled by default
ContentHTML is preserved when present; otherwise text is sent as Markdown

Supabase Auth

Supabase Auth can send email through a custom SMTP provider. Configure it with:

Host: smtp.lumail.io
Port: 587
Security: STARTTLS
Username: your-org-slug
Password: lum_your_api_token
Sender email: [email protected]

If you can use Supabase's Send Email hook instead, prefer the hook and call POST /api/v1/emails from your endpoint. It gives you structured errors and avoids SMTP parsing.

SMTP Responses

ResponseMeaning
250Message accepted and queued by Lumail
535Invalid Lumail API token
530Authentication required
550Invalid sender, recipient, or message
552Message too large or attachment rejected
452Temporary queue, quota, or plan-limit issue
451Lumail API temporarily unavailable

Lumail returns 250 only after the transactional priority queue accepts the message.