Blog
Field notes
Email infrastructure, AI agents, and what we learn shipping fast without breaking the things that matter.
MailKite SMTP for WordPress is on WordPress.org
MailKite SMTP, the WordPress plugin we build, is now listed in the WordPress.org plugin directory. It replaces PHP mail() with delivery through MailKite, SendGrid, Brevo, Mailgun or any SMTP server, keeps a free email log, fails over automatically when a send fails, and receives email into WordPress. Version 0.4.2, GPL-2.0, free with no Pro tier.
Read-
Product 9 minAnnouncing the MailKite Server developer API: use the client against your own server
MailKite Server now exposes a Cloud-compatible send and receive API. Point the MailKite client at your own server, keep your application code, and choose self-hosted, Cloud, or a hybrid deployment.
-
Engineering 8 minMailKite now ships a native mailer for six more frameworks
MailKite shipped native mail integrations for Spring Boot, ASP.NET Core, Next.js, NestJS, Flask, and FastAPI in one day — three new packages, two verified starters with no new code, and two real bugs found in already-published packages along the way.
-
Tutorials 3 minMautic email deliverability: replace SMTP with the Symfony Mailer DSN transport
Mautic 5 runs on Symfony Mailer, not SwiftMailer — which means it can take a native mailkite+api:// DSN instead of generic SMTP. This tutorial covers the install, the DSN config, and why campaign-send errors are more useful than an SMTP rejection code.
-
Comparisons 23 min23 open source email servers for Linux, sorted by the job each one does
Most "best open source mail server" lists put a full-stack Docker bundle and a single SMTP daemon in the same ranked table, as if you'd choose between them. You wouldn't. This is 23 Linux mail projects grouped by the slot they fill in the mail path, with licenses, languages, and activity verified on 2026-08-05, plus the part every roundup skips: what self-hosting still costs you after the install script says done.
-
Product 4 minOne DSN, three PHP ecosystems: MailKite's Symfony Mailer transport
mailkite/symfony-mailer resolves a mailkite+api:// DSN into a first-party Symfony Mailer transport — which means Mautic, PrestaShop, Drupal, and any plain Symfony app all get it from one package, with honest errors instead of a generic SMTP rejection.
-
Tutorials 15 minEmail to Slack: threading, Block Kit limits, and the duplicate-post trap
Slack's own email-to-channel needs a paid plan, pins every message to one fixed channel, and can't thread. Wiring inbound email to Slack yourself is about 50 lines — but three things bite once real mail arrives: Slack rejects any header block over 150 characters, webhook retries post the same email twice, and Incoming Webhooks never return a message ts, so an email thread can never become a Slack thread. Here's the handler that survives all three, and the return path that lets your team reply to the customer from inside the Slack thread.
-
Product 3 minMailKite Server: our SMTP + IMAP edges are now open source
The Haraka-based MX and submission edges and the IMAP server that power MailKite are now AGPL on GitHub — self-host the whole stack, point our hosted MX at your box, or connect the same web console to MailKite Cloud.
-
Guides 9 minThe Unfair Advantage of Using Agents for Email
AI agents can send email. Most can't receive it. Here's what happens when you give an agent its own inbox — the Lethal Trifecta of security risks (untrusted content × sensitive data × external communication), how scoped access and reply tokens solve it, and how MailKite, which we build, wires it together.
-
Engineering 19 minBuild software that heals itself in the agentic era
An AI agent can write the fix now; the hard part is architecting your software so letting one patch production isn't reckless. Here's a design pattern for self-healing systems: never crash, turn every failure into a structured anonymous signature, and let an agent close the loop behind a sandbox and adversarial gates. Our open-source MIME parser is the worked example; the pattern applies far beyond it.
-
Tutorials 3 minDrupal email that works: replace PHP mail() with proper SMTP
Drupal uses PHP's mail() function by default — the same broken path that sinks WordPress email in spam. This tutorial shows how to install the SMTP Authentication module, configure it for MailKite's SMTP relay, and route all Drupal site email through your DKIM-signed domain. Password resets, contact forms, content notifications — all deliverable.