Notix
Product

Point your mailer at one host and the rest is handled.

Notix's SMTP relay service accepts mail from any framework, CMS or script that can speak SMTP, and turns each message into the same send the email API makes: authenticated with your verified domain, checked against your suppression list, tracked, and reported through webhooks. It is for teams whose stack already has a mailer configured and who want to change one settings block rather than write a client. Transactional mail such as receipts and alerts belongs on the transactional email API when you need idempotency keys; everything else works over SMTP as it is.

465 · 587ports: implicit TLS, or STARTTLS
1host for every framework: smtp.usenotix.dev
10 MBof attachments per message, decoded
1 listsuppression shared with the API
What you get

SMTP in, a tracked send out.

One login for every app.

The username is always notix and the password is an API key. Create a key per application, revoke it when the application goes, and the relay login goes with it.

Your domain, authenticated.

Mail leaves under a domain you verified, with SPF and DKIM in place, so receiving networks can check that it is yours. An unverified From address is refused, not sent.

The suppression list applies.

An address that bounced or unsubscribed is skipped whether the message arrived over SMTP or the API. The list is one list, shared across transactional and marketing mail.

Webhooks and the dashboard.

Delivered, bounced and complained events reach your webhook endpoints, and every message shows in the dashboard with its status, the same as an API send.

Two ports, both encrypted.

465 with implicit TLS, or 587 with STARTTLS. Pick whichever your client defaults to; there is no plain-text option.

Same limits as the API.

20 MB per message, 7 MB per attachment, 10 MB of attachments together. The relay advertises the size limit through the SMTP SIZE extension so a client can refuse early.

Configuration

Change one settings block.

Host smtp.usenotix.dev, port 465 or 587, username notix, and an API key as the password. Every sample below is the whole change.

Node.js with Nodemailer
import nodemailer from "nodemailer";

const transporter = nodemailer.createTransport({
  host: "smtp.usenotix.dev",
  port: 465,
  secure: true, // implicit TLS on 465; use port 587 with secure: false for STARTTLS
  auth: {
    user: "notix",
    pass: process.env.NOTIX_API_KEY,
  },
});

await transporter.sendMail({
  from: "receipts@acme.com",
  to: "customer@example.com",
  subject: "Your receipt",
  html: "<p>Thanks for your order.</p>",
});
How it works

The relay is a translator, not a second system.

  1. 1. Your mailer connects.

    Your framework opens a TLS connection to smtp.usenotix.dev, logs in as notix with an API key, and hands over the message exactly as it would to any SMTP server. Nothing about your code changes.

  2. 2. The relay turns it into an API send.

    The relay parses the message (headers, HTML and text bodies, attachments) and posts it to the send API with your key. From here it is indistinguishable from a JSON call: domain authentication, suppression, tracking and rate limits all apply.

  3. 3. Delivery and events.

    The message is delivered under your verified domain, its status appears in the dashboard, and delivered, bounce and complaint events go to your webhooks.

Details

Host, ports, credentials and TLS.

Host and ports.

The host is smtp.usenotix.dev for every plan. Port 465 expects TLS from the first byte (implicit TLS), which is what most mail libraries mean by secure: true orSSL. Port 587 starts in plain text and upgrades with STARTTLS, which is what EMAIL_USE_TLS in Django and MAIL_ENCRYPTION=tls in Laravel select. Port 25 is not published: it is the port networks block by default, and a relay that listened on it would only teach you to fight your host's firewall.

Credentials.

The username is the fixed string notix. The password is an API key, created under Settings, API keys in the dashboard. The relay does not keep a password store of its own: it forwards the key to the API, and the API decides whether it is valid. Rotating the key rotates the SMTP login; deleting the key ends it. Give each application its own key so one leak costs one application.

TLS.

Both ports present a certificate for smtp.usenotix.dev issued by a public authority, so leave certificate verification on. A client configured to skip verification would accept any server that answered on the host, which is the one thing the certificate is there to prevent.

What the relay turns SMTP into.

An SMTP session ends with an accepted message and a queue id. Behind that, the relay has produced the same request the email API takes, so what you get back is not a mail log line but a message with a status, events and a place in your dashboard. If you later want idempotency keys or scheduled sends, the same key that logged you in over SMTP works against the API.

Plans

The relay is on every plan.

Free: 5,000 emails a month, 200 a day, no card, no end date.

Pro: $15 a month for 50,000 emails, usage past that on the same invoice.

See pricing

Where it fits

Where an SMTP relay is the right choice.

A CMS or storefront.

WordPress, a shop platform or a ticketing system that sends mail through whatever SMTP settings it is given. Fill in four fields and its order confirmations and password resets go out under your domain.

A framework mailer already in place.

Django, Laravel, Rails or Spring apps that already call their framework's mail function. Swap the transport in settings and every existing call is now a tracked send.

Cron jobs and scripts.

A nightly report or an alert script that shells out to a mail command. A relay login is all it needs; no SDK to install.

Migrating off another relay.

If you are leaving another SMTP provider, the change is the host, the port and the login; nothing in your application changes. See the SendGrid alternative or the Resend alternative page for the details.

Limits

The limits that apply.

ItemLimitWhere it is set
Recipients50 per message across to, cc and bcc; each one counts as an emailPOST /v1/emails, and RCPT TO on the SMTP relay
Ports465 with implicit TLS, or 587 with STARTTLSYour mailer's transport settings
CredentialsUsername notix, an API key as the passwordYour mailer's auth settings
FAQ

Questions about the relay, answered.

What is an SMTP relay service?
An SMTP relay is a server that accepts email from your application over the SMTP protocol and delivers it on your behalf. Your framework's mailer connects with a host, a port and a login, exactly as it would to any mail server; the relay handles authentication with the receiving networks, delivery, bounces and reporting. Notix's relay goes one step further and hands each message to the same pipeline as its send API.
Which host, port and login do I use?
Host smtp.usenotix.dev. Port 465 for implicit TLS, or 587 for STARTTLS. The username is always notix, and the password is any Notix API key you create under Settings, API keys. There is no separate SMTP password to manage or rotate: revoke the key and the relay login stops working with it.
Is there a free SMTP server for developers?
Yes. The Free plan includes 5,000 emails a month and 200 a day over SMTP or the API, with no card and no end date. Pro is $15 a month for 50,000 emails. The relay is the same on both plans; only the volume differs.
Does mail sent over SMTP get the same suppression list and webhooks as the API?
Yes. The relay parses your message and posts it to the send API, so it is the same send from that point on: suppressed addresses are skipped, delivery, bounce and complaint events reach your webhooks, and the message appears in your dashboard with its status. You do not lose any of that by choosing SMTP over a JSON call.
Can I send from any address?
The From address must be on a domain you have verified in Notix, with its SPF and DKIM records in place. The relay refuses a message from an unverified domain rather than sending it unauthenticated, because mail that fails authentication is what receiving networks file as spam. Verifying a domain is part of the quickstart.
What are the size limits?
The relay applies the same limits as the send API: 20 MB for the whole message (advertised through the SMTP SIZE extension), 7 MB for one attachment, 10 MB for all attachments together, 998 characters of subject and 2,000,000 characters of HTML or text body. An oversized message is refused with an SMTP error that names the limit.
Should I use SMTP or the API?
Use SMTP when your framework, CMS or legacy system already speaks it and you want to change one configuration block, not code. Use the API when you want idempotency keys, batch and scheduled sends, or templates managed in Notix. Both end up in the same pipeline, so you can start with SMTP and move individual sends to the API later.

Change one settings block and send.

Verify a domain, create an API key, paste the host and port into your mailer. The free plan does not ask for a card.