{"adoption": {"forks": 82, "observed_at": "2026-08-28T04:06:11.217906+00:00", "stars": 2076}, "canonical_url": "https://ross.abutalabs.com/products/mail-archiver", "card": {"archived": false, "artifact_type": "application", "description": "Mail-Archiver is a web application for archiving, searching, and exporting emails from multiple accounts. Featuring folder sync, attachment support, mailbox migration  and a dashboard.", "domain": ["email", "self-hosted", "developer-tools"], "enriched": true, "function": ["search-engine", "email", "backup", "web-framework", "auth", "mcp", "api-framework", "self-hosted"], "health_score": 100, "homepage": null, "language": "C#", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["s1t5/mail-archiver"], "name": "s1t5/mail-archiver", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2026-08-25T18:12:22+00:00", "repo": "s1t5/mail-archiver", "stars": 2076, "tags": ["email-archiving", "imap", "microsoft-365", "mailbox-migration", "mbox-export", "eml-export", "oidc", "rest-api", "attachment-handling", "folder-sync", "backup", "docker", "web-server"], "topics": ["archive", "archiver", "docker-compose", "imap", "mail", "backup", "migration"], "urls": [], "use_cases": ["archive emails from multiple imap accounts automatically", "search archived emails with filters and attachments", "export emails as mbox or eml files", "migrate mailboxes between providers", "let ai agents search my email archive via mcp", "self-host an email backup solution with docker", "monitor email storage and sync statistics on a dashboard"], "what_it_is": "Mail-Archiver is a self-hosted web application for archiving, searching, and exporting emails from multiple accounts (IMAP, Microsoft 365, and personal Microsoft accounts). It offers scheduled folder sync, attachment support, mailbox migration, a statistics dashboard, multi-user permissions, OIDC authentication, a read-only REST API, and an MCP server for AI agent access.", "when_to_avoid": ["you need a full mail server or to send/receive mail, not just archive it", "you need a lightweight CLI tool rather than a web application with a database", "you require E2E-encrypted email storage, which it does not provide"], "when_to_choose": ["you need a self-hosted, multi-account email archive with scheduled syncing", "you want searchable long-term email storage with attachment support and export to mbox/eml", "you need mailbox migration between IMAP or Microsoft 365 accounts", "you want programmatic or AI-agent read access to archived mail via REST API or MCP"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mail-archiver", "repo": "s1t5/mail-archiver", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:11.217906+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:56:15.335558+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe67aa68eb5d759e121eefb782739670594e1a733f3bde1e93a3d8cbf7a4c11c", "fetched_at": "2026-08-28T04:06:11.217906+00:00", "kind": "readme", "missing": false, "url": "https://github.com/s1t5/mail-archiver"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 34, "rhythm": 96}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 484, "days_push": 8, "days_rel": 30, "gap_med": 5.0, "n_releases_24m": 57}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}