SMTP relay
Send mail through Ranla using standard SMTP — for Supabase custom SMTP, Clerk, WordPress, Nodemailer, and other integrations that expect host, username, and password.
The relay uses the same account scoping, domain verification, sandbox rules, billing, suppressions, and webhooks as POST /emails.
Connection settings
| Setting | Value |
|---|---|
| Host | smtp.supersendtx.com |
| Port | 587 (STARTTLS) |
| Username | supersendtx |
| Password | Your SMTP credential (stxsmtp_…) |
Create credentials in the dashboard under SMTP or via POST /smtp-credentials with a full-access API key.
The password is shown once at creation — copy it immediately.
Create a credential
curl -X POST https://api.ranla.ai/smtp-credentials \
-H "Authorization: Bearer $RANLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Supabase production"}'Response includes host, port, username, and password.
Supabase custom SMTP
After you verify your domain in Ranla:
- Dashboard → SMTP → Create SMTP credential
- Supabase → Project Settings → Authentication → SMTP
- Paste host, port, username
supersendtx, password, and your branded sender email
For hook-based auth mail (Edge Functions), see Supabase Auth email.
Nodemailer example (SMTP)
For the HTTP Nodemailer transport (no SMTP credential), see Node.js.
import nodemailer from 'nodemailer'
const transport = nodemailer.createTransport({
host: 'smtp.supersendtx.com',
port: 587,
secure: false,
auth: {
user: '@supersend/ranla',
pass: process.env.SUPERSENDTX_SMTP_PASSWORD,
},
})
await transport.sendMail({
from: '[email protected]',
to: '[email protected]',
subject: 'Hello',
html: '<p>Hi</p>',
headers: {
'X-SuperSendTX-Tag': 'campaign=welcome',
'X-SuperSendTX-Idempotency-Key': 'welcome-123',
// 'X-SuperSendTX-Scheduled-At': '2030-01-01T00:00:00Z',
},
})Custom headers (API features over SMTP)
The relay maps these headers onto POST /emails fields so SMTP clients are not limited to basic MIME:
| Header | Maps to |
|---|---|
X-SuperSendTX-Tag |
tags (name=value; repeat for multiple) |
X-SuperSendTX-Idempotency-Key or Idempotency-Key |
Idempotency (24h, same rules as HTTP) |
X-SuperSendTX-Scheduled-At |
scheduled_at (ISO 8601) |
Other non-reserved headers are forwarded to the API headers object.
Rules
Frommust use a verified domain for your account (or sandbox rules apply)- Revoke credentials from the dashboard or
DELETE /smtp-credentials/{id} - SMTP credentials are send-only — use API keys for management APIs
Local development
Run the SMTP relay worker:
npm run build:worker
npm run worker:smtpDefault bind: 0.0.0.0:2525 (plain SMTP, no TLS). Set SUPERSENDTX_SMTP_PORT to override.