April 5, 2020 2:47 AM, "grmat" <gr...@sub.red> wrote: > Hi there, >
Hello, > I'd like to setup GNU Mailman with OpenSMTPD. In #1040[1], poolpOrg told > me command processing is to be done with a .forward file instead of > aliases: > >> I think aliases should not support command processing at all as handling >> these from a .forward file >> is equivalent > > So I looked up the man page forward(5) and it also says > >> A .forward file contains a list of expansion values, as described in >> aliases(5). > > Therefore, I assumed I could just set up a .forward file for mailman > (in addition to aliasing the addresses to user "mailman"). > Example content for running mailing list gene...@example.org: > > # general mailing list > general: "|/path/to/mailman/mail/mailman post general" > general-admin: "|/path/to/mailman/mail/mailman admin general" > general-bounces: "|/path/to/mailman/mail/mailman bounces general" > [...] > > But apparently, that's not how .forward files work. aliases are > key-value, but .forward rules are only values, and a mail would always > be forwarded to *each* of the lines. At least that's what I understand > from the errors I get. I don't think it's possible to set different > forwarding rules for different addresses which are all aliased to the > same user, hence I still have to go for aliases in this case? > > Could anyone please confirm that or tell me where I'm wrong. Thanks in > advance! > It is possible to use some variables in .forward files, so you can write a small script (this is just an untested example): #! /bin/sh if test "$1" = "general"; then /path/to/mailman/mail/mailman post general elif test "$1" = "general-admin"; then /path/to/mailman/mail/mailman admin general elif test "$1" = "general-bounces"; then /path/to/mailman/mail/mailman bounces general fi Then in ~mailman/.forward, use: |/path/to/that/wrapper "%{dest.user}" This is superior to adding the commands in /etc/mail/aliases as you are guaranteed that the mailman utility is privileges separated from daemon and ran as the user who owns the .forward file. For other software, like mlmmj it is even simpler as the command itself uses the recipient email address to determine what command it should be running and no script is needed.