frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Posthorn, self-hosted mail without the mail server

https://github.com/craigmccaskill/posthorn
10•craigmccaskill•3h ago
Introducing Posthorn, a self hosted email gateway. One docker container (or Go binary) between every self hosted app on your VPS and your transactional email provider. Set up Posthorn once, point your apps to it, done.

I was trying to deploy Ghost on a DigitalOcean droplet and found that DO and many different VPS services have started to block the default SMTP ports to try to combat the various types of abuse they get. To actually configure my app, I had to hack together a Postfix relay.

In another project, I had a static site which had a contact form, but my free Formspree account was occasionally hitting usage limits and I desperately wanted some of the anti-spam features they had gated behind their paid accounts so I put together a caddy module to catch HTTP POSTs and bounce them to my provider.

I kept bumping into these same email issues. Many of the services I wanted to host (Gitea, Mastodon, Umami, Comentario) ran into the same limitations. This felt like a really common issue that had no good solution.

Posthorn is what I built to solve this. It's a small Go binary (or 10 MB docker image) that sits between your self hosted apps and your transactional email provider of choice (shipping with support for Postmark, Resend, Mailgun, Amazon SES or an outbound SMTP relay). It also accepts POSTs from HTML forms to support static site needs while adding security layers such as honeypot fields, origin checks and IP rate limiting. There's also a JSON HTTP API that supports Bearer auth for backend scripts or cron jobs that just want a /send endpoint.

I now use this personally in multiple scenarios and I've spent a lot of time beating this up and testing against what I can validate. I'd love to hear how this might be useful for you, what breaks and any feedback you might have. It's open source under Apache 2.0 and I'd love contributions. I'm planning to support and grow this for the long haul.

Code: https://github.com/craigmccaskill/posthorn

Docs: https://posthorn.dev/

Longer write up: https://craigmccaskill.com/introducing-posthorn/

Previous HN discussion on the exact issue I'm trying to solve: https://news.ycombinator.com/item?id=43620318

Comments

throwaway81523•38m ago
Is Posthorn a reference to W.A.S.T.E.?
47282847•19m ago
Not OP but I read it as reference to just https://en.wikipedia.org/wiki/Post_horn
ranger_danger•31m ago
Don't services like SES already operate over 443/TLS and aren't blocked?
npodbielski•28m ago
> Nobody wants to self host email server.

I do. Though I am self hosting it to have my personal email, being well... personal. Not for my company so maybe I am not the target.

Interesting project though. I always felt missing API to just send emails from some script in my mail server.

radiospiel•14m ago
An interesting combination of features.

Personally, I have used nullmailer in the past to provide a sendmail compatible local install that immediately forwards email to the SMTP server of my choice. Has worked flawlessly.

Obviously, that doesn't come with HTML form support, but then I am also not sure I would like the same binary to handle both a HTTP(S) endpoint and email submission :)

The Structural Barriers to AI Lawyers

https://www.diffuseai.pub/p/the-structural-barriers-to-ai-lawyers
12•benbreen•5d ago•2 comments

Cloudflare Flagship

https://developers.cloudflare.com/flagship/
196•tjek•7h ago•91 comments

What Gets Kept

https://www.newyorker.com/culture/the-weekend-essay/what-jack-kerouac-left-behind
6•lermontov•2d ago•1 comments

BadHost – CVE-2026-48710: Starlette Host-Header Auth Bypass

https://badhost.org/
22•ylk•22h ago•4 comments

That Methyl Methacrylate Tank

https://www.science.org/content/blog-post/methyl-methacrylate-tank
316•nooks•12h ago•118 comments

The Melancholy of Slaying Monsters

https://thereader.mitpress.mit.edu/the-strange-melancholy-of-slaying-monsters/
8•prismatic•12h ago•0 comments

A few interesting modern pixel fonts

https://unsung.aresluna.org/a-few-interesting-modern-pixel-fonts/
331•zdw•1d ago•69 comments

I built a Git-tracked book production pipeline

https://www.djspeckhals.com/posts/2026-05-22-how-i-bypassed-adobe-and-microsoft-to-build-a-git-tr...
224•dustin1114•4d ago•58 comments

A history of obituaries in American newspapers

https://blogs.loc.gov/headlinesandheroes/2026/05/mourn-not-a-history-of-obituaries-in-american-ne...
18•NaOH•2d ago•0 comments

The worst job interview I ever had

https://www.oliverio.dev/blog/the-worst-job-interview-i-had
218•oliverio•11h ago•183 comments

IBM Confidential: System/360 File Organization [video]

https://www.youtube.com/watch?v=zokKqP0plrM
34•DaiPlusPlus•2d ago•9 comments

A portentous reunion

https://bcantrill.dtrace.org/2026/05/25/a-portentous-reunion/
93•cafkafk•1d ago•26 comments

Cate v1.0 is out: The Infinite canvas workspace for developers

https://github.com/0-AI-UG/cate
13•BlueBerry2001•1d ago•5 comments

Launch HN: Minicor (YC P26) – Windows desktop automations at scale

https://www.minicor.com/
86•fchishtie•16h ago•53 comments

What I've Learned (So Far) Building Online Mini Games with Elixir and Swift

https://calvinflegal.com/2026/05/24/what-ive-learned-so-far-building-online-mini-games-with-elixi...
38•calflegal•2d ago•17 comments

Rosalind: A genomics toolkit in Rust running whole-genome pipelines on a laptop

https://github.com/logannye/rosalind
152•samuell•5d ago•37 comments

Tunecat: Simple Internet Radio

https://codeberg.org/lindenii/tunecat/
46•croottree•6h ago•2 comments

Spain blocks prediction markets Polymarket, Kalshi over lack of gambling licence

https://www.reuters.com/business/spain-blocks-prediction-markets-polymarket-kalshi-over-lack-gamb...
886•thm•18h ago•408 comments

TSDuck: Open-source toolkit for MPEG-TS analysis and manipulation

https://tsduck.io/
16•phantomathkg•5h ago•1 comments

C array types are weird

https://anselmschueler.com/blogposts/2025-c-pointers/
76•signa11•2d ago•71 comments

Show HN: Posthorn, self-hosted mail without the mail server

https://github.com/craigmccaskill/posthorn
10•craigmccaskill•3h ago•5 comments

Stripe is friendly to “friendly fraud”

https://www.gingerlime.com/2026/stripe-seem-friendly-to-friendly-fraud/
246•gingerlime•6h ago•154 comments

The Forgotten Art of the LAN Party (2023)

https://www.superjumpmagazine.com/the-forgotten-art-of-the-lan-party/
113•susam•3d ago•36 comments

Splinter Cell veteran says realistic modern lighting has screwed up stealth game

https://www.rockpapershotgun.com/splinter-cell-veteran-says-realistic-modern-lighting-has-screwed...
58•Tomte•2d ago•39 comments

Dropbox CEO Drew Houston to step down

https://www.cnbc.com/2026/05/26/dropbox-ceo-drew-houston-ashraf-alkarmi.html
336•aghuang•18h ago•359 comments

The Steinwinter Supercargo

https://www.thedrive.com/article/12603/the-forgotten-steinwinter-supercargo-is-unlike-anything-on...
64•itronitron•3d ago•17 comments

Erin Brockovich made a map to track data centers around the country

https://www.niemanlab.org/2026/05/erin-brockovich-made-a-map-to-track-data-centers-around-the-cou...
207•cratermoon•6h ago•194 comments

Sonny Rollins, jazz saxophonist, has died

https://www.rollingstone.com/music/music-news/sonny-rollins-jazz-legend-saxophone-colossus-dead-o...
103•boarsofcanada•7h ago•14 comments

What color is your function? (2015)

https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/
118•tosh•15h ago•150 comments

The real cost of owning a home

https://ericturner.dev/posts/cost-of-home-ownership/
357•ggcr•15h ago•731 comments