Listmonk
Seven million emails from a single binary peaking at 57 MB of RAM: listmonk is a high-performance newsletter and mailing list manager in Go with PostgreSQL as its only dependency - no Redis, no worker processes, no message broker. The project's own production benchmark sent 7+ million emails with the binary peaking around 57 MB of RAM, and throughput exceeds 100K emails per hour on modest hardware. Campaigns run through a multi-threaded, multi-SMTP queue with round-robin delivery, per-server concurrency, retries, and sliding-window rate limiting across providers like Amazon SES, SendGrid, Mailgun, or your own Postfix relay. Subscribers carry custom JSON attributes and are segmented with raw SQL queries, so any audience Postgres can express, listmonk can target. Templates use Go template syntax with 100+ functions for dynamic per-subscriber content, and the Vue dashboard reports opens, clicks, bounces, and unsubscribes with automated bounce processing. A REST API handles transactional email and programmatic control, a built-in media library hosts campaign assets, and CSV or API import migrates lists from hosted platforms. The economics are the headline: where Mailchimp pricing scales with list size, listmonk plus Amazon SES sends the same volume for hosting cost plus roughly $0.10 per thousand emails - commonly a 95% reduction - and your email list, a core business asset, stays on your own infrastructure. AGPLv3-licensed; bring your own SMTP provider for delivery.
Gray Duck Mail
Email discussion lists - the venerable listserv pattern where one address relays to a whole group - without the notorious setup pain of Mailman or Sympa: that is Gray Duck Mail. Its architectural trick is requiring no mail server of your own: the C#/ASP.NET Core app monitors a POP3 inbox at any external email host supporting POP3/SMTP and aliasing, relays each incoming message to all list members via SMTP, and archives it for browsing in the web interface. Replies route back to the entire group automatically. The tedious parts of list management are handled by convention: dedicated aliases process join requests, subscription confirmations, and unsubscribes, while a bounce alias in the return-path catches delivery failures so dead addresses get handled instead of silently rotting. The web administration interface creates and removes lists, manages contacts, browses message archives, and imports or exports the local database for backup. GPLv3-licensed, Docker-distributed, and fully code-documented, it targets exactly the groups email still serves best - neighborhoods, schools, congregations, workplaces, and families - where one message keeping everyone in the loop beats yet another app nobody wants to install.