Pipe mode
If you’d rather not run an LMTP listener, your MTA can pipe mail to the xlistman deliver command, which relays it to the running daemon over a Unix socket.
How it works
xlistman deliver <list-address>
deliver reads a raw message from standard input and sends it over the Unix
socket at socket.path (the shipped config uses /tmp/xlistman.sock). Each
connection carries one message: the first line is the recipient address, the rest
is the raw RFC 822 message. Relaying to the running daemon keeps a single writer
to the database.
In practice you pipe the message to the command from your MTA’s filter or alias
mechanism, passing the envelope recipient as the address. Postfix’s pipe transport or exim’s pipe transport both work; the exact transport config
depends on your MTA.
Prerequisites
- The Unix socket must be writable by whatever user the MTA pipes as — one reason
the shipped config keeps the socket in
/tmp. - The daemon must be running (
xlistman serve), since the socket is served by it.
socket:
path: "/tmp/xlistman.sock"
If the daemon isn’t listening on the socket, xlistman deliver reports ERR ... and the message fails.
When to choose it
Pipe mode is a reasonable fallback when you can’t (or don’t want to) run an unauthenticated LMTP listener on your host. LMTP is the validated primary path — use it unless pipe mode solves a real constraint.
Next: The web UI.