Hello Jan, 

[email protected] (Jan Eden), 2026.01.19 (Mon) 18:05 (CET):
> On 2026-01-19 14:00, Jan Eden wrote:
> 
> > On 2026-01-19 14:10, Reio Remma wrote:
> 
> > > > > I see I have this for mlmmj in my config:
> > > > > 
> > > > > action deliver_mlmmj   mda "/usr/bin/mlmmj-receive -L
> > > > > /var/vmail/mlmmj/%{rcpt.domain}/%{rcpt.user}/" virtual
> > > > > <mlmmj_virtuals>userbase <mlmmj_userinfo>
> > > > > match from any for domain <domains> rcpt-to <mlmmj_recipients> action
> > > > > deliver_mlmmj
> > > > > 
> > > > Hi Reio,
> > > > 
> > > > could you quote (anonymized) lines from the three tables referenced in
> > > > your config, so I understand how they work together? I was under the
> > > > impression I could just use one table to link the list name to the
> > > > %{dest.user} variable. My lists will not use different domains, so I
> > > > will probably not need the domain variable.
> > > 
> > > Unfortunately I'm no further help here, because I've a setup with virtual
> > > users stored in a database. Maybe you can just skip the virtual/userbase
> > > part of the action.
> > 
> > I have now simplified the test configuration like this:
> > 
> > --------------------------------------------------
> > table mailing_lists { [email protected] }
> > action "mlmmj" mda "/usr/local/bin/mlmmj-receive -L 
> > /var/spool/mlmmj/testing/"
> > match from any for rcpt-to <mailing_lists> action "mlmmj"
> > --------------------------------------------------
> > 
> > Note that the action does not use a variable (for now). But even then, I
> > get the well-known error message 550. It is quite frustrating.
> 
> Progress! I was able to replicate Reio's configuration like this (257 is
> the UID/GID of the _smtpd user account):
> 
> --------------------------------------------------
> table mailing_lists { [email protected] = testing }
> table mlmmj_userinfo { testing = 257:257:/var/spool/mlmmj }
> action "mlmmj" mda "/usr/local/bin/mlmmj-receive -L 
> /var/spool/mlmmj/%{dest.user}/" virtual <mailing_lists> userbase 
> <mlmmj_userinfo>
> match from any for rcpt-to <mailing_lists> action "mlmmj"
> --------------------------------------------------
> 
> This results in:
> 
> - Messages sent from any subscribed address are delivered to the
>   mailboxes of *local* subscribers.
> - Messages sent from non-subscribers create administrative messages for
>   owners/moderators.

This sounds like mlmmj was handling the mails indeed.
 
> Remaining issues:
> 
> - Messages sent from subscribed addresses are not being delivered to
>   external subscribers.

This sounds like a OpenSMTPd outbound mail config thing?
What are the logs showing?
What do you get after the following trace options?
$ for i in smtp mta expand lookup rules; do doas smtpctl trace $i; done

> - Messages sent from non-subscribers result in generic error messages
>   (Status: 5.3.0).

But... didn't you state above that messeages from non-subscribers were
handled by mlmmj? Yet OpenSMTPd responds 5.3.0 to the sender?

> - Releasing messages from non-subscribers will not deliver them to any
>   subscriber (local or external).

Not suprising for external, see above.
Rather unexpected for local, indeed. 

What are the logs showing?

Marcus

> So the mda action does work in principle, but it still has major flaws
> (for me). While the simple mapping/piping method works perfectly, I
> still would like to understand why the mda action fails.
> 
> Thanks in advance for any pointers!
> 
> - Jan
> 

Reply via email to