SMTP relay

For frameworks and legacy apps that only speak SMTP. Every message you relay becomes a normal API send under the hood — same logs, same suppressions, same quotas, same deliverability autopilot. Your password is an API key, so nothing new to provision.

Connection settings

Hostsmtp.noticeapi.com
Port465 (implicit TLS — not STARTTLS)
UsernameAnything — it is ignored
PasswordAn API key (ntc_xxxxxxxxxxxxxxxxxxxx)
node (nodemailer)
import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: "smtp.noticeapi.com",
  port: 465,
  secure: true, // implicit TLS
  auth: {
    user: "noticeapi", // ignored — anything works
    pass: "ntc_xxxxxxxxxxxxxxxxxxxx",
  },
});

await transport.sendMail({
  from: "Acme <[email protected]>",
  to: "[email protected]",
  subject: "Your receipt",
  html: "<p>Thanks for your order.</p>",
});
rails
# config/environments/production.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  address: "smtp.noticeapi.com",
  port: 465,
  tls: true, # implicit TLS, not STARTTLS
  user_name: "noticeapi",
  password: ENV["NOTICEAPI_KEY"], # ntc_...
}
django
# settings.py
EMAIL_HOST = "smtp.noticeapi.com"
EMAIL_PORT = 465
EMAIL_USE_SSL = True  # implicit TLS
EMAIL_HOST_USER = "noticeapi"
EMAIL_HOST_PASSWORD = os.environ["NOTICEAPI_KEY"]  # ntc_...

Rules worth knowing

The From domain must be one of your verified sending domains, exactly like the API. Relayed mail is treated as transactional — use broadcasts for marketing so unsubscribe handling stays correct. Attachments inside the MIME body are dropped in v0 (use the REST API for those), messages cap at 10 recipients and ~2 MB, and only the first text/html and text/plain parts are kept.