Creating a small mailinglist on your mailserver isn't that big of an issue.
When SIEVE is available you could use something like this:
require ["copy","reject", "editheader", "variables", "regex","envelope"]; # rule:[Mailinglist] if anyof (address :is "from" "[email protected]", address :is "from" "[email protected]", address :is "from" "[email protected]", address :is "from" "[email protected]", address :is "from" "[email protected]") { if header :regex "From" "([^<]+)" { set "name" "${1}"; } deleteheader "Reply-To"; deleteheader "From"; deleteheader "To"; deleteheader "DKIM-Signature"; deleteheader "DomainKey-Signature"; deleteheader "X-DKIM"; deleteheader "X-DomainKeys"; addheader "From" "${name} <[email protected]>"; addheader "To" "[email protected]"; redirect :copy "[email protected]"; redirect :copy "[email protected]"; redirect :copy "[email protected]"; redirect :copy "[email protected]"; redirect :copy "[email protected]"; stop; }reject "You are not allowed to send Mails to this mailing list."
This code basically checks if the sender is allowed to send to the mailing list with "if anyof"
Then it takes the senders name from the "From" headerfield (regex) and puts it into a variable.
Then it removes all headerfields that could cause a spam classification because of the upcoming header change. (deleteheader DKIM, ..)
After this it sets the mailinglist email as "From" address and prefixes the original senders name to it. In the Mail Client it might look like "User1 <[email protected]>". All recipiens can reply to the mailinglist but see the original sender.