happydeliver
Open-source, self-hosted email deliverability testing platform
9.5K

An open-source email deliverability testing platform that analyzes test emails and provides detailed deliverability reports with scoring.

The all-in-one Docker image includes everything you need:
git clone https://git.nemunai.re/happyDomain/happyDeliver.git
cd happyDeliver
# Edit docker-compose.yml to set your domain
# Change HAPPYDELIVER_DOMAIN and HOSTNAME variables
docker-compose up -d\`\`\`
**Access:**
- API: [http://localhost:8080](http://localhost:8080)
- SMTP: `localhost:25`
### 2οΈβ£ Run Directly with Docker
\`\`\`bash
docker run -d \
--name happydeliver \
-p 25:25 \
-p 8080:8080 \
-e HAPPYDELIVER_DOMAIN=yourdomain.com \
-e HOSTNAME=mail.yourdomain.com \
-v $(pwd)/data:/var/lib/happydeliver \
-v $(pwd)/logs:/var/log/happydeliver \
happydeliver:latest
sudo ufw allow 25/tcp
# or
sudo iptables -A INPUT -p tcp --dport 25 -j ACCEPT
β οΈ Note: Some providers block port 25 by default. You may need to request unblocking.
yourdomain.com. IN A 203.0.113.10
yourdomain.com. IN AAAA 2001:db8::10
No MX record is required if the same host serves both HTTP and SMTP.
| Endpoint | Method | Description |
|---|---|---|
/api/test | POST | Create a new deliverability test |
/api/test/{id} | GET | Get test metadata and status |
/api/report/{id} | GET | Retrieve detailed report |
/api/report/{id}/raw | GET | Get raw annotated email |
/api/status | GET | Service health status |
Example:
# Create a test
curl -X POST http://localhost:8080/api/test
Response:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "test-kfauqaao@localhost",
"status": "pending"
}
You can analyze emails manually from the command line:
cat email.eml | ./happyDeliver analyze
Or specify recipient explicitly:
cat email.eml | ./happyDeliver analyze -recipient [email protected]
| Category | Description |
|---|---|
| DNS | PTR, FCrDNS, MX, SPF, DKIM, DMARC, BIMI |
| Authentication | IPRev, SPF, DKIM, DMARC, BIMI, ARC |
| Blacklist | RBL/DNSBL checks |
| Headers | MIME, alignment, required headers |
| Spam | SpamAssassin score |
| Content | HTML quality, links, unsubscribe, etc. |
This project is funded by NGI Zero Coreβ , established by NLnet Foundationβ with support from the European Commissionβs Next Generation Internetβ program.
GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later)
| Tag | Description |
|---|---|
latest | Latest stable release |
<version> | Specific versioned builds |
Content type
Image
Digest
sha256:88d054844β¦
Size
101.3 MB
Last updated
2 days ago
docker pull happydomain/happydeliverPulls:
214
Last week