SMTP relay

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

For the product overview, read the SMTP relay guide, or use the Nodemailer integration guide.

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 on Pro or Custom for those), messages cap at 10 recipients and ~2 MB, and only the first text/html and text/plain parts are kept.