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
STARTTLS on port 587 and implicit TLS on port 465. Works with WordPress, Laravel, Rails, nodemailer, Django, Python smtplib, 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 (STARTTLS) or 465 (TLS)
Username: poststack
Password: sk_live_your_api_key
# Example with swaks
swaks --to user@example.com \
--from hello@yourdomain.com \
--server smtp.poststack.dev:587 \
--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 (STARTTLS) and port 465 (implicit TLS). 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 with STARTTLS or port 465 with implicit TLS. Both are equally supported.
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. Postfix `relayhost = [smtp.poststack.dev]:587` with `smtp_sasl_auth_enable = yes` and proper `sasl_passwd` 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 587 (STARTTLS) or 465 (TLS); both are submission ports and accept authenticated traffic.