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:

  1. Dashboard → SMTPCreate SMTP credential
  2. Supabase → Project Settings → Authentication → SMTP
  3. 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

  • From must 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:smtp

Default bind: 0.0.0.0:2525 (plain SMTP, no TLS). Set SUPERSENDTX_SMTP_PORT to override.