MailKite
Get started
SMTP relay

Your app already knows how to send email. Let it.

Point WordPress, your CRM, or any app that speaks SMTP at MailKite — no SDK, no rewrite. Same domains, same deliverability, and the same logs as our API.

SMTP settings
Host
smtp.mailkite.dev
Port
587 · or 465
Username
mailkite
Password
your API key
Encryption
STARTTLS / TLS

Your password is your MailKite API key — no separate SMTP credential.

If it has an SMTP settings panel, it works with MailKite

WordPress Laravel Rails Django Symfony Nodemailer WooCommerce Grafana Jenkins Sentry Postfix Metabase
Any language

Standard SMTP — nothing of ours to install

Use the mail library you already have. The password is your API key; any username works.

send over SMTP
import nodemailer from "nodemailer";

const tx = nodemailer.createTransport({
  host: "smtp.mailkite.dev",
  port: 587,                 // STARTTLS · use 465 for implicit TLS
  auth: {
    user: "mailkite",        // any username works
    pass: process.env.MAILKITE_API_KEY, // your mk_live_… key
  },
});

await tx.sendMail({
  from: "hello@myapp.ai",    // an address on a verified domain
  to: "ada@example.com",
  subject: "Your invoice #1042",
  html: "<p>Thanks! Receipt attached.</p>",
});

WordPress (WP Mail SMTP)

settings
WP Mail SMTP → Settings → Other SMTP
Host            smtp.mailkite.dev
Encryption      TLS
Port            587
Auto TLS        On
Authentication  On
SMTP Username   mailkite          (any username works)
SMTP Password   mk_live_…         (your MailKite API key)
From Email      you@your-verified-domain.dev

Test it from a terminal

swaks
swaks --server smtp.mailkite.dev:587 --tls \
  --auth LOGIN --auth-user mailkite --auth-password "$MAILKITE_API_KEY" \
  --from you@your-verified-domain.dev --to you@example.com \
  --header "Subject: MailKite SMTP test" --body "It works."

Every send, in your logs

Most SMTP relays are a black box. Here, every message lands in your dashboard — delivered, bounced, opened — DKIM-signed and searchable, exactly like an API send. Nothing disappears into the void.

One credential, not three

Your password is your MailKite API key. No separate SMTP username, no per-region secret, no “SMTP key vs API key” mix-up — the one key you already have sends over SMTP and the API.

SMTP or the API?

Use either. Or both.

Both run on the same infrastructure, the same domains, and the same sending reputation. Pick whichever fits how you build.

Reach for SMTP

  • You're plugging in an app, CMS, or CRM that already speaks SMTP
  • The tool only has SMTP settings — no way to add an API call
  • You want zero dependencies — no SDK, no lock-in
  • You want to send in minutes with copy-paste settings

Graduate to the API + webhooks

  • You're building something new and want typed requests and responses
  • You want delivery, bounce, and open events pushed to your endpoint
  • You want idempotency keys, scheduling, and templates
  • You also need inbound email → webhooks

Same account, same domains, same keys — start on SMTP today and add the API whenever you want more. Nothing to migrate.

Send your first email in minutes

Grab a key, drop the settings into your app, and you're live — on your own verified domain.