Lightweight DMARC parser: auto-fetch email reports, visualize compliance in a single all-in-one app
io.github.meysam81/parse-dmarc โ Model Context Protocol Server
Parse DMARC is a lightweight parser that auto-fetches email reports and visualizes compliance in a single all-in-one app. It leverages Go and Vue.js to provide a self-hosted dashboard for DMARC, SPF, DKIM, and email-security monitoring through a single binary.
๐ ๏ธ Key Features
Lightweight DMARC parser with auto-fetching of reports
Visualizes domain alignment and compliance in one dashboard
Self-hosted, single-binary deployment
docker-ready and sqlite-backed storage
Technologies: Golang, Vue.js (Vue 3), IMAP support
๐ Use Cases
Monitoring DMARC compliance for domains
Centralized viewing of DMARC, SPF, and DKIM results
Self-hosted email security monitoring for teams
Local dashboards for incident response and reporting
Deploy Parse DMARC to your favorite cloud provider with one click:
Platform as a Service (PaaS)
Provider
Deploy
Notes
Railway
Recommended for beginners
Render
Free tier available
Koyeb
Global edge deployment. Manually mount /data as volume.
Zeabur
Asia-Pacific optimized
Northflank
Developer-focused
Self-Hosted
Provider
Deploy
Notes
CapRover
Self-hosted PaaS
Coolify
Open-source Heroku alternative
Dokploy
Self-hosted deployment platform
Docker
Run anywhere
Infrastructure
Provider
Deploy
Notes
DigitalOcean Droplet
VM with Packer image
Note: All deployments require IMAP credentials. See Configuration for details on setting up Gmail, Outlook, or other email providers.
Why Do I Need This?
DMARC (Domain-based Message Authentication, Reporting & Conformance) helps protect your domain from email spoofing and phishing. When you enable DMARC on your domain, email providers like Gmail, Outlook, and Yahoo send you aggregate reports showing:
Who's sending email claiming to be from your domain
Which emails passed or failed authentication (SPF/DKIM)
How many emails were sent, and from which IP addresses
Whether malicious actors are trying to impersonate your domain
The Problem: These reports arrive as compressed XML attachments in your inbox - nearly impossible to read or analyze manually.
The Solution: Parse DMARC automatically fetches these reports from your inbox, parses them, and displays everything in a beautiful dashboard. All in a single 14MB Docker image.
Features
๐ง Auto-fetches reports from any IMAP inbox (Gmail, Outlook, etc.)
๐ Beautiful dashboard with real-time statistics
๐ See exactly who's sending email as your domain
๐ง Built-in DNS record generator for easy DMARC setup
๐ฆ Single binary - no databases to install, no complex setup
rua=mailto:dmarc@yourdomain.com - Send aggregate reports to this email address
Important: Replace dmarc@yourdomain.com with an actual email inbox you control. This is where Gmail, Outlook, Yahoo, etc. will send your DMARC reports.
DNS Examples:
Cloudflare: DNS > Add record > Type: TXT, Name: _dmarc, Content: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
Google Domains: DNS > Custom records > TXT, Name: _dmarc, Data: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
A production-ready Grafana dashboard is included in grafana/dashboard.json.
Import Manually
In Grafana, go to Dashboards > Import
Upload grafana/dashboard.json or paste its contents
Select your Prometheus datasource
Click Import
Provision Automatically (Recommended for Production)
bash
# Copy dashboard to Grafana dashboards directorycp grafana/dashboard.json /var/lib/grafana/dashboards/parse-dmarc/
# Copy provisioning configcp grafana/provisioning.yaml /etc/grafana/provisioning/dashboards/parse-dmarc.yaml
# Restart Grafana or wait for it to pick up changes
systemctl restart grafana-server
Dashboard Variables
Variable
Purpose
datasource
Prometheus datasource to query
job
Filter by Prometheus job label
instance
Filter by instance(s)
domain
Filter by monitored domain(s)
Dashboard Sections
Section
What It Shows
Overview - Golden Signals
Compliance rate, total messages, reports count, time since last fetch