Command line

The xmailman binary is the whole product — web UI, mail handling, and an administration CLI in one. Configuration is read from $XMAILMAN_CONFIG or ./xmailman.yaml. Actions taken on the CLI are recorded in the audit trail, attributed to your local OS user.

Reference

CommandWhat it does
xmailman serveStart the daemon: HTTP + web UI, LMTP, pipe socket, outbound queue, digest worker, and the hourly sweeper.
xmailman deliver <list-address>Pipe mode: read a raw message from stdin and relay it to the daemon over the Unix socket.
xmailman domain add <name> [desc]Add a virtual domain.
xmailman domain remove <name>Remove a virtual domain.
xmailman domain listList domains.
xmailman list create <addr> --type <discussion\|newsletter> [--owner <email>] [--desc <text>] [--moderate]Create a list; --owner assigns the first owner.
xmailman list delete <addr>Delete a list and all its data. Permanent.
xmailman list type <addr> <discussion\|newsletter>Change a list’s type.
xmailman list list [--domain <d>]List lists.
xmailman list info <addr>Show a list’s details and every setting.
xmailman list config <addr> <k>=<v> ...Edit list settings (keys match list info).
xmailman list allowlist <addr>List a newsletter’s designated senders.
xmailman list add-sender <addr> <email>Designate a sender for a newsletter list.
xmailman list remove-sender <addr> <id>Remove a designated sender.
xmailman owner add \| remove \| list <list> <email>Manage Owners.
xmailman moderator add \| remove \| list <list> <email>Manage Moderators.
xmailman admin add \| remove \| list <email>Manage instance-wide Administrators.
xmailman subscriber add \| remove <list> <email>Add or remove a subscriber (add is immediate — no confirmation).
xmailman subscriber approve \| reject <list> <email>Resolve a pending subscription request.
xmailman subscriber re-enable <list> <email>Re-enable a disabled subscriber (resets the bounce count).
xmailman subscriber reset-bounces <list> <email>Reset a member’s bounce count without changing status.
xmailman subscriber list <list>List subscribers.
xmailman subscriber import \| export <list> [file]Bulk-import members from CSV or export the roster as CSV.
xmailman moderation list \| approve \| reject \| discardWork the held-message queue.
xmailman audit list <addr> [action]Show a list’s audit trail.
xmailman audit server [action]Show the instance-wide audit trail.
xmailman queue list \| discardInspect or discard stuck outbound messages.
xmailman enable \| disable loginToggle magic-link sign-in (disabling ends all sessions).
xmailman enable \| disable managementToggle the web consoles (public pages and self-service stay up).
xmailman web statusShow whether login and management are enabled.
xmailman config checkValidate the config file.
xmailman config initGenerate a commented xmailman.yaml.
xmailman versionPrint the version.
xmailman helpPrint full usage.

First administrator

The first instance Administrator is designated on the command line — there’s no bootstrap page. That’s a deliberate design: the person who owns the server declares who runs it.

xmailman admin add you@example.com

Setting a list’s settings

List settings (moderation, digest frequency, subscription policy, bounce threshold, attachment policy, and more) are set with list config. Keys match list info output; booleans and integers as plain values.

xmailman list config dev@example.com moderation_enabled=true
xmailman list config dev@example.com digest_frequency=weekly
xmailman list config dev@example.com subscription_policy=moderated

Next: Email commands.