SMTP Relay

Send emails via standard SMTP (port 587) using your Posthawk API key — compatible with any SMTP client (Nodemailer, PHPMailer, smtplib, etc.).

Posthawk includes a standard SMTP submission relay on port 587. This lets you send email from any language or framework that supports SMTP, without changing to a REST API.

Connection details:

  • Host: smtp.posthawk.dev (cloud) or your server hostname (self-hosted)
  • Port: 587
  • Encryption: STARTTLS
  • Username: posthawk
  • Password: your API key (e.g. ck_live_...)

The SMTP relay supports AUTH PLAIN and AUTH LOGIN mechanisms.

In cloud mode, the relay verifies that the "From" domain is a verified domain in your workspace before relaying through AWS SES.

Example — Node.js (Nodemailer):

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
host: 'smtp.posthawk.dev',
port: 587,
secure: false,
auth: { user: 'posthawk', pass: 'ck_live_...' },
});

await transporter.sendMail({
from: 'hello@yourdomain.com',
to: 'user@example.com',
subject: 'Hello via SMTP',
html: '<h1>Hello!</h1>',
});

Example — Python (smtplib):

import smtplib
from email.mime.text import MIMEText

msg = MIMEText('<h1>Hello!</h1>', 'html')
msg['From'] = 'hello@yourdomain.com'
msg['To'] = 'user@example.com'
msg['Subject'] = 'Hello via SMTP'

with smtplib.SMTP('smtp.posthawk.dev', 587) as server:
server.starttls()
server.login('posthawk', 'ck_live_...')
server.send_message(msg)

All emails sent via SMTP are logged in the dashboard and count toward your rate limits and plan usage, just like API-sent emails.