Pine Mail is a tiny, self-hosted SMTP mail catcher for development environments — like Mailtrap or Mailpit, but written in Rust and built with AI-agent-driven testing in mind. Point your app's mailer at localhost:1025, and every email your app "sends" during dev gets caught, parsed, and shown in a clean web UI at localhost:8025 instead of actually leaving your network.
Hey Product Hunt! 👋
I built Pine Mail because every mail catcher I used for local dev (Mailtrap, Mailpit, MailHog) was great for humans clicking through emails, but none of them were built for the world I actually work in now: AI coding agents running end-to-end tests.
When an agent (or a CI script) needs to test "sign up → check the verification email → extract the code → complete the flow," it shouldn't have to poll a REST endpoint in a loop or guess how long to sleep(). So Pine Mail ships:
a GET /api/wait endpoint that long-polls until a matching email actually arrives
a GET /api/messages/:id/extract endpoint that pulls OTP codes and magic links out of the body automatically
a full MCP server (pinemail-mcp) so Claude/Copilot/Cursor can just... use these as tools
On top of that I wanted it to be genuinely slim — it's a single Rust binary with the whole React UI baked in via rust-embed, so docker compose up gets you SMTP + a full inbox UI + an MCP server with a hard memory cap, nothing else running.
It's fully open source (MIT). Would love feedback, especially from anyone building agentic e2e test suites — what would make this more useful for your workflow?
GitHub: https://github.com/yoosuf/pinemail