K
Koltrix docs

SMTP relay

Point any mail library at smtp.koltrix.com:2525 and authenticate with your API key. Identical pipeline to the REST API — same bounce handling, suppression, tracking, and webhooks.

Connection details

SettingValue
Hostsmtp.koltrix.com
Port2525
SecuritySTARTTLS not yet required at :2525 (TLS termination in front of the cluster)
AuthAUTH PLAIN or AUTH LOGIN
Usernameapikey
PasswordYour full kx_… key (with send scope)

Python (stdlib)

import smtplib, email.message, os
 
msg = email.message.EmailMessage()
msg["From"]    = "[email protected]"
msg["To"]      = "[email protected]"
msg["Subject"] = "Hello via SMTP"
msg.set_content("Plain body")
msg.add_alternative("<p>HTML body</p>", subtype="html")
 
with smtplib.SMTP("smtp.koltrix.com", 2525) as s:
    s.login("apikey", os.environ["KOLTRIX_KEY"])
    s.send_message(msg)

Node (nodemailer)

import nodemailer from "nodemailer";
 
const t = nodemailer.createTransport({
  host: "smtp.koltrix.com",
  port: 2525,
  auth: { user: "apikey", pass: process.env.KOLTRIX_KEY! },
});
 
await t.sendMail({
  from: "[email protected]",
  to:   "[email protected]",
  subject: "Hello via SMTP",
  html: "<p>HTML body</p>",
});

PHP

$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host       = "smtp.koltrix.com";
$mail->Port       = 2525;
$mail->SMTPAuth   = true;
$mail->Username   = "apikey";
$mail->Password   = getenv("KOLTRIX_KEY");
$mail->setFrom("[email protected]");
$mail->addAddress("[email protected]");
$mail->Subject = "Hello via SMTP";
$mail->msgHTML("<p>Hi</p>");
$mail->send();

When to use SMTP vs REST

  • REST wins when: you need Idempotency-Key, structured error responses, or want to send to many recipients with metadata.
  • SMTP wins when: you have legacy code or a library that already speaks SMTP, or your customer needs to point a third-party tool at us.

Either way, every send shows up under Settings → Email logs.