Thanks for helping build an open, programmable mail server.
- CLA required. Before your first PR is merged you'll be asked to sign our individual Contributor License Agreement (via cla-assistant on the PR). It lets the project relicense and dual-license in the future while you keep full rights to your work.
- License: all contributions land under AGPL-3.0-only.
- One change per PR, with a clear description of the problem it solves. For anything non-trivial, open an issue first so the approach can be agreed before you build.
Each component is a standalone Node.js project (npm ci inside mta/, mta-submit/,
imap/). See each component's README for local run instructions. End-to-end smoke tests
against the reference backend arrive with api-local/.
imap/depends onrediseven though nothing imports it directly:imap-corerequires it unconditionally at module load without declaring it. Removing it kills the daemon at startup. Seeimap/README.md.npm auditinimap/reportssemverReDoS advisories viaimap-core → utf7. The vulnerable path only ever receivesprocess.version(a Node-supplied constant), so it is not reachable by untrusted input, and force-resolving semver risks breakingutf7. Assessed and accepted — seeimap/README.mdfor the full analysis.
PRs that only bump/force-resolve these will be closed with a pointer here.
Please report vulnerabilities privately — see SECURITY.md (do not open public issues for
security reports).