Synopsis
perch [OPTIONS] COMMANDDescription
perch runs a local IMAP server and authenticated submission endpoint, backed by mxRaven for inbound MX, outbound delivery, SPF/DKIM/DMARC, IP reputation, and spam filtering.
Messages are stored in SQLite or offloaded to S3. The same binary provides administrative commands and a scriptable mail client for IMAP and SMTP.
Notes
- Run
perch help <command>or see the per-command manpages for details. - The default configuration path is
$XDG_CONFIG_HOME/perch/perch.yaml. - perch does not need a public IP, port forwarding, or inbound SMTP ports.
Options
| Option | Description |
|---|---|
--help, -h | show help |
--version, -v | print the version |
Commands
| Command | Description |
|---|---|
| perch init | create a local configuration and optional first account |
| perch setup | create the mxRaven domain, listeners, keys, and routes |
| perch serve | run IMAP, submission, and the notification consumer |
| perch account | add, list, password, disable, or enable accounts |
| perch alias | manage address aliases and catch-all domains |
| perch mailbox | list mailboxes for an account |
| perch mail | list, search, fetch, and send mail |
| perch doctor | check the database, TLS, S3, and mxRaven connectivity |
| perch backup | write a consistent SQLite backup |
| perch reconcile | force one S3 bucket reconciliation pass |
| perch gc | remove orphan blobs, old dead letters, and S3 tombstones |
| perch outbound | list submitted messages and delivery status |
| perch version | print the version |
Examples
perch setup --workspace my-workspace --domain example.com --hostname localhost
perch account add --email you@example.com
perch serve --config ~/.local/share/perch/perch.yaml
perch mail list --server 127.0.0.1:1143 --plaintext --username you@example.com