SMTP relay
A standards-compliant SMTP relay hosted in the EU. Drop it into WordPress, Laravel, Rails, nodemailer, or any SMTP client, and keep full tracking and webhooks.
Standard SMTP, any client
Port 587 with either implicit TLS (SSL on connect) or STARTTLS. Works with WordPress, Laravel, Rails, nodemailer, Django, Python smtplib, Supabase Auth, and every AI-agent framework.
Tracking, parity with the API
Open and click tracking, webhooks, suppressions, and bounce handling behave identically whether you send over REST or SMTP.
One credential to manage
Use your PostStack API key as the SMTP password. Rotate it from the dashboard and every SMTP client updates at once.
SMTP configuration
# SMTP Settings
Host: smtp.poststack.dev
Port: 587 (TLS required — implicit TLS / SSL on connect, or STARTTLS)
Username: poststack
Password: sk_live_your_api_key
# Example with swaks (-tlsc = TLS on connect / implicit TLS)
swaks --to user@example.com \
--from hello@yourdomain.com \
--server smtp.poststack.dev:587 \
--tlsc \
--auth LOGIN \
--auth-user poststack \
--auth-password sk_live_...Use cases
WordPress and PHP applications
Drop the PostStack SMTP credentials into WP Mail SMTP, FluentSMTP, or any plugin that supports a custom SMTP host. WordPress emails (admin notifications, comment alerts, password resets) start delivering reliably from your domain.
Laravel, Rails, Django, Phoenix
Every major web framework ships with a mailer that already speaks SMTP. Set `MAIL_HOST=smtp.poststack.dev`, `MAIL_USERNAME=poststack`, `MAIL_PASSWORD=sk_live_…`, and your existing mailer code just works — no SDK rewrite.
AI agents and headless tools
Any AI agent framework that can speak SMTP can send mail through PostStack. Use the API key as the SMTP password so the same credential gates both the REST and SMTP surfaces, with shared rate limits and audit logs.
Legacy or off-the-shelf software
Cron jobs, monitoring tools (Prometheus alertmanager, Nagios), backup systems, and printers — anything that needs to send mail and only speaks SMTP — gets a modern, EU-hosted relay with full tracking and deliverability.
How it works
The PostStack SMTP relay is an Internet-facing MTA at `smtp.poststack.dev` accepting submission on port 587 with either implicit TLS (SSL on connect, RFC 8314) or STARTTLS — use whichever your client supports; only unencrypted (plaintext) connections are rejected. (Port 465 is the mailbox/IMAP submission port and authenticates against mailbox credentials, not API keys.) Authenticate with SMTP AUTH PLAIN or LOGIN: the username is the literal string `poststack` and the password is your `sk_live_…` API key. Every authenticated message is rewritten internally to use the same delivery pipeline as the REST API — same DKIM signing, same SPF/DMARC alignment, same suppression checks, same webhook events. Open and click tracking work identically: PostStack inserts the tracking pixel and rewrites links on the fly, just as it does for API-initiated messages. The `From` address must match a domain you have verified; messages from unverified domains are rejected at the SMTP transaction so misconfiguration is loud rather than silent. Common headers — `X-Mailer`, `Message-ID`, `Date`, `Reply-To`, `List-Unsubscribe` — are respected or generated as appropriate. The MTA enforces RFC compliance strictly: messages with bare LF instead of CRLF line endings are normalised to prevent SMTP smuggling, and oversized messages (>25 MB raw, ~18 MB after base64) are rejected with a 552. Connection rate limits, send rate limits, and idle timeouts are documented in the SMTP relay docs.
Frequently asked questions
What is the SMTP hostname?
smtp.poststack.dev, port 587. TLS is required — connect with either implicit TLS (SSL on connect, RFC 8314) or STARTTLS, whichever your client supports; only plaintext connections are rejected. (Port 465 is for mailbox/IMAP accounts, which authenticate with mailbox credentials, not API keys.)
What credentials do I use?
Username `poststack`, password is your `sk_live_…` API key from the dashboard. The same key works for the REST API, so rotating it once updates both surfaces.
Do tracking and webhooks work the same way?
Yes — identical behaviour to the REST API. Open pixels are inserted, click links are rewritten, and every webhook event fires on the same schedule. The dashboard does not distinguish API sends from SMTP sends.
Can I use PostStack as a relay for my outbound MTA?
Yes. Set `relayhost = [smtp.poststack.dev]:587` with `smtp_sasl_auth_enable = yes`, a proper `sasl_passwd`, and `smtp_tls_security_level = encrypt`. Postfix defaults to STARTTLS on 587, which the relay now supports — or set `smtp_tls_wrappermode = yes` to use implicit TLS instead. Either way it is a common setup for self-hosted servers that need a deliverability-grade exit relay.
Is there a port 25 option?
No — port 25 is reserved for MX-to-MX delivery and is blocked at most ISPs. Use port 587 (implicit TLS or STARTTLS) for authenticated API-key submission.