Configuration of mlmmj with OpenSMTPD

Jan Eden <[email protected]> Mon, 19 Jan 2026 14:32:56 +0100
Newsgroups org.mlmmj.mlmmj
Message-ID <[email protected]>
Hi,

after using Mailman3 (with Postfix) for a couple of years, I was looking
for a (much) simpler solution and found mlmmj. What a great tool. I plan
to use it with OpenSMTPD and in my initial testing, I struggled to
create an elegant, integrated configuration. The following configuration
does work –

--------------------------------------------------
table mailing_lists file:/usr/local/etc/mail/lists
action "mlmmj" expand-only virtual <mailing_lists>
match from any for rcpt-to <mailing_lists> action "mlmmj"
--------------------------------------------------

with a lists file containing entries like

--------------------------------------------------
[email protected] "|/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/testing/"
--------------------------------------------------

But when I try to reference the mlmmj-receive binary in smtpd.conf
directly like this:

--------------------------------------------------
table mailing_lists file:/usr/local/etc/mail/lists
action "mlmmj" mda "/usr/local/bin/mlmmj-receive -L /var/spool/mlmmj/%{rcpt.user}/"
match from any for rcpt-to <mailing_lists> action "mlmmj"
--------------------------------------------------

with list entries like

--------------------------------------------------
[email protected] testing
--------------------------------------------------

The server always returns an error message:

--------------------------------------------------
msmtp: recipient address [email protected] not accepted by the server
msmtp: server message: 550 Invalid recipient: <[email protected]>
--------------------------------------------------

I know that the "mda" action should work in this scenario, but I cannot
get it to work, neither in the form quoted above nor with the addition
of "virtual <mailing_lists>". I asked my question on the OpenSMTPD
mailing list, too, but no one could point me to my error (which must be
somewhere).

Thanks in advance for any hint,
Jan