On 4/15/25 16:51, Philip Bondi wrote:

I have two domains: systemdatabase.ca, systemdatabase.homelinux.com

All my lists should be on both domains.  So h...@systemdatabase.ca is the same 
list as h...@systemdatabase.homelinux.com.  I found this was the mailman2 
behaviour on my old CentOS 7 installation and I am accustomed to it.


While Mailman 2.1 had some support for multiple domains, list names had to be globally unique because a given list name referred to that one list regardless of domain.

Mailman 3 is different in that the domain is part of the list name so h...@systemdatabase.ca and h...@systemdatabase.homelinux.com are different lists.

I edited /opt/mailman/venv_mm/var/data/postfix_lmtp directly.  Duplicated and 
edited all the lines. And compiled with postmap 
/opt/mailman/venv_mm/var/data/postfix_lmtp

I sent a test email.  This appears to work.

Is this the best method to achieve this goal?  What would you recommend?


If all you want is for mail to h...@systemdatabase.ca or h...@systemdatabase.homelinux.com to wind up at the same list, what you've done is OK, but whatever fqdn name your list is created as, it needs the other fqdn name added to it's Acceptable aliases setting, at least if Require Explicit Destination is Yes.

The other issue is every time you start Mailman core it will implicitly run `mailman aliases` and overwrite your changes.

I have a similar situation on one of the servers I support. The lists are all in a domain I'll call example.com, but we also want to allow mail to <list>@otherexample.com to reach the <list>@example.com list. We use this patch to add all those names.
```
--- a/src/mailman/mta/postfix.py
+++ b/src/mailman/mta/postfix.py
@@ -261,5 +261,10 @@ class LMTP:
                         '{}@{}'.format(alias, mlist.true_mail_host))
                     line = VMAPTMPL.format(true_addr, width, addr)
                     print(line, file=fp)
+                    if mlist.true_mail_host == 'example.com':
+                        true_addr = self._decorate(
+                            '{}@{}'.format(alias, 'otherexample.com'))
+                        line = VMAPTMPL.format(true_addr, width, addr)
+                        print(line, file=fp)
                 print(file=fp)
         return True
```
However, this only works because example.com has an alias domain. If that weren't the case, we would need something like this instead.
```
--- a/src/mailman/mta/aliases.py
+++ b/src/mailman/mta/aliases.py
@@ -43,9 +43,14 @@ class MailTransportAgentAliases:
         """See `IMailTransportAgentAliases`."""
         # Always return
         yield mlist.posting_address
+        if mlist.mail_host == 'example.com':
+            yield '{}@otherexample.com'.format(mlist.list_name)
         for destination in sorted(SUBDESTINATIONS):
             yield '{}-{}@{}'.format(
                 mlist.list_name, destination, mlist.mail_host)
+            if mlist.mail_host == 'example.com':
+                yield '{}-{}@{}'.format(
+                    mlist.list_name, destination, 'otherexample.com')

     def destinations(self, mlist):
         """See `IMailTransportAgentAliases`."""
```
Do not use both those patches. If your list domain has an alias domain, use only the first one and if not, only the second.

--
Mark Sapiro <m...@msapiro.net>        The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

_______________________________________________
Mailman-users mailing list -- mailman-users@mailman3.org
To unsubscribe send an email to mailman-users-le...@mailman3.org
https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
Archived at: 
https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message/BDVJOVLBINODAJPGTVKKRU3WCPYRQ5SB/

This message sent to arch...@mail-archive.com

Reply via email to