
Hi,
I added a new site in Django: lists.example.com
Usually I click on 'view site' and I can add a Domain in Postorios. In this case I get an error message and I need to add a Domain in Django. Then I can go to 'view site'.
I can create a mailing list there. However when I send an email to be subscribed, I get the following in mailman.log (and nothing else happens):
Oct 09 13:46:24 2025 (110452) deque: do_confirm_verify Traceback (most recent call last): File "/usr/lib/python3/dist-packages/mailman/app/workflow.py", line 69, in __next__ return step() File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 379, in _step_send_confirmation notify(SubscriptionConfirmationNeededEvent( ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ self.mlist, self.token, self.address.email)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/zope/event/__init__.py", line 33, in notify subscriber(event) ~~~~~~~~~~^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 669, in handle_SubscriptionConfirmationNeededEvent _handle_confirmation_needed_events(event, 'list:user:action:subscribe') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 638, in _handle_confirmation_needed_events confirm_address = event.mlist.confirm_address(event.token) File "/usr/lib/python3/dist-packages/mailman/model/mailinglist.py", line 335, in confirm_address local_part = expand(config.mta.verp_confirm_format, self, dict( address='{}-confirm'.format(self.list_name), cookie=cookie)) File "/usr/lib/python3/dist-packages/mailman/utilities/string.py", line 69, in expand if mlist.domain.base_url is not None: ^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/model/mailinglist.py", line 279, in domain return getUtility(IDomainManager)[self.mail_host] ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/model/domain.py", line 177, in __getitem__ raise KeyError(mail_host) KeyError: 'lists.example.com' Oct 09 13:46:24 2025 (110452) Uncaught runner exception: 'lists.example.com' Oct 09 13:46:24 2025 (110452) Traceback (most recent call last): File "/usr/lib/python3/dist-packages/mailman/core/runner.py", line 179, in _one_iteration self._process_one_file(msg, msgdata) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/core/runner.py", line 272, in _process_one_file keepqueued = self._dispose(mlist, msg, msgdata) File "/usr/lib/python3/dist-packages/mailman/runners/command.py", line 214, in _dispose status = command.process( mlist, msg, msgdata, parts, results) File "/usr/lib/python3/dist-packages/mailman/commands/eml_membership.py", line 122, in process ISubscriptionManager(mlist).register(subscriber, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ delivery_mode=delivery_mode) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 584, in register list(workflow) ~~~~^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/workflow.py", line 69, in __next__ return step() File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 379, in _step_send_confirmation notify(SubscriptionConfirmationNeededEvent( ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ self.mlist, self.token, self.address.email)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/zope/event/__init__.py", line 33, in notify subscriber(event) ~~~~~~~~~~^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 669, in handle_SubscriptionConfirmationNeededEvent _handle_confirmation_needed_events(event, 'list:user:action:subscribe') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 638, in _handle_confirmation_needed_events confirm_address = event.mlist.confirm_address(event.token) File "/usr/lib/python3/dist-packages/mailman/model/mailinglist.py", line 335, in confirm_address local_part = expand(config.mta.verp_confirm_format, self, dict( address='{}-confirm'.format(self.list_name), cookie=cookie)) File "/usr/lib/python3/dist-packages/mailman/utilities/string.py", line 69, in expand if mlist.domain.base_url is not None: ^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/model/mailinglist.py", line 279, in domain return getUtility(IDomainManager)[self.mail_host] ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/model/domain.py", line 177, in __getitem__ raise KeyError(mail_host) KeyError: 'lists.example.com' Oct 09 13:46:24 2025 (110452) SHUNTING: 1760010384.7617948+270daab1a93851be76e09ce6b976f78ec6232ca2
If I write a subscription email to any list of any other domain/site, I get back the request of confirmation and nothing in mailman.log.
And there is another difference to other sites: I get shown all lists of all sites/domains and not only the ones which belongs to this site/domain.
What could I have done wrong here? I really don't get it.
Thanks for help.
Flo

On Thu, Oct 9, 2025 at 3:03 PM Flo via Mailman-users < mailman-users@mailman3.org> wrote:
Hi,
I added a new site in Django: lists.example.com
Usually I click on 'view site' and I can add a Domain in Postorios. In this case I get an error message and I need to add a Domain in Django. Then I can go to 'view site'.
I can create a mailing list there. However when I send an email to be subscribed, I get the following in mailman.log (and nothing else happens):
Oct 09 13:46:24 2025 (110452) deque: do_confirm_verify Traceback (most recent call last): File "/usr/lib/python3/dist-packages/mailman/app/workflow.py", line 69, in __next__ return step() File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 379, in _step_send_confirmation notify(SubscriptionConfirmationNeededEvent( ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ self.mlist, self.token, self.address.email)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/zope/event/__init__.py", line 33, in notify subscriber(event) ~~~~~~~~~~^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 669, in handle_SubscriptionConfirmationNeededEvent _handle_confirmation_needed_events(event, 'list:user:action:subscribe')
File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 638, in _handle_confirmation_needed_events confirm_address = event.mlist.confirm_address(event.token) File "/usr/lib/python3/dist-packages/mailman/model/mailinglist.py", line 335, in confirm_address local_part = expand(config.mta.verp_confirm_format, self, dict( address='{}-confirm'.format(self.list_name), cookie=cookie)) File "/usr/lib/python3/dist-packages/mailman/utilities/string.py", line 69, in expand if mlist.domain.base_url is not None: ^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/model/mailinglist.py", line 279, in domain return getUtility(IDomainManager)[self.mail_host] ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/model/domain.py", line 177, in __getitem__ raise KeyError(mail_host) KeyError: 'lists.example.com' Oct 09 13:46:24 2025 (110452) Uncaught runner exception: ' lists.example.com' Oct 09 13:46:24 2025 (110452) Traceback (most recent call last): File "/usr/lib/python3/dist-packages/mailman/core/runner.py", line 179, in _one_iteration self._process_one_file(msg, msgdata) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/core/runner.py", line 272, in _process_one_file keepqueued = self._dispose(mlist, msg, msgdata) File "/usr/lib/python3/dist-packages/mailman/runners/command.py", line 214, in _dispose status = command.process( mlist, msg, msgdata, parts, results) File "/usr/lib/python3/dist-packages/mailman/commands/eml_membership.py", line 122, in process ISubscriptionManager(mlist).register(subscriber, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ delivery_mode=delivery_mode) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 584, in register list(workflow) ~~~~^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/workflow.py", line 69, in __next__ return step() File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 379, in _step_send_confirmation notify(SubscriptionConfirmationNeededEvent( ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ self.mlist, self.token, self.address.email)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/zope/event/__init__.py", line 33, in notify subscriber(event) ~~~~~~~~~~^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 669, in handle_SubscriptionConfirmationNeededEvent _handle_confirmation_needed_events(event, 'list:user:action:subscribe') ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/app/subscriptions.py", line 638, in _handle_confirmation_needed_events confirm_address = event.mlist.confirm_address(event.token) File "/usr/lib/python3/dist-packages/mailman/model/mailinglist.py", line 335, in confirm_address local_part = expand(config.mta.verp_confirm_format, self, dict( address='{}-confirm'.format(self.list_name), cookie=cookie)) File "/usr/lib/python3/dist-packages/mailman/utilities/string.py", line 69, in expand if mlist.domain.base_url is not None: ^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/model/mailinglist.py", line 279, in domain return getUtility(IDomainManager)[self.mail_host] ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/mailman/model/domain.py", line 177, in __getitem__ raise KeyError(mail_host) KeyError: 'lists.example.com' Oct 09 13:46:24 2025 (110452) SHUNTING: 1760010384.7617948+270daab1a93851be76e09ce6b976f78ec6232ca2 If I write a subscription email to any list of any other domain/site, I get back the request of confirmation and nothing in mailman.log. And there is another difference to other sites: I get shown all lists of all sites/domains and not only the ones which belongs to this site/domain. What could I have done wrong here? I really don't get it.
Your first and greatest mistake is that you installed Mailman using OS packages and that is NOT supported on this list. You can remedy that by wiping away the packages and installing MM3 by following the guide below:
https://docs.mailman3.org/en/latest/install/virtualenv.html
If something fails after that, come back quickly and we'll do our best to help you.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]

Odhiambo Washington via Mailman-users writes:
Your first and greatest mistake is that you installed Mailman using OS packages and that is NOT supported on this list.
Of course we support people who are using OS packages. You don't have to if you don't want to, but please don't suggest they should go away. And your advice to wipe and reinstall from PyPI is often appropriate, but that is not so here because they have a working site already. Only one new domain is failing.
We do recommend *against* using using OS packages, because we can't support them very well, and the Debian family tends to let the packages get quite old before updating to recent Mailman releases. So for many kinds of problems, the first-line support for OS package users *should* be the OS distribution. It's easy enough to tell them that when it's so.
In this case, Flo says 3.3.8 is installed, which is almost 3 years old now. It's quite possible there's a Mailman bug in that version we have since fixed. Unfortunately, I don't have a clue. Maybe Mark does.
You can remedy that by wiping away the packages and installing MM3 by following the guide below:
@Flo: It is possible to do this safely and preserve your existing sites and lists. If we can't help you with your existing installation, we can guide you through this process. The basic idea is that because almost all the interesting data is in your database or /etc/mailman3, you can just plug in the new Mailman system, point things at the right places (probably the file system layout will change so you'll need to change some things in mailman.cfg, settings.py, and some related systems like logrotate and systemd).
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan

On Thu, Oct 9, 2025 at 6:06 PM Stephen J. Turnbull <steve@turnbull.jp> wrote:
Odhiambo Washington via Mailman-users writes:
Your first and greatest mistake is that you installed Mailman using OS packages and that is NOT supported on this list.
Of course we support people who are using OS packages. You don't have to if you don't want to, but please don't suggest they should go away.
I am sorry if my wording was interpreted as "go away" :-)
I should have found that link that always points those who install MM3 using OS packages to the Package maintainers as the primary line of support for the reason that there are possibilities of outdated libraries as compared to the virtualenv mode of installation. Otherwise, I recant everything I said. I am deeply sorry.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]

On 2025-10-09 18:30:38 +0300 (+0300), Odhiambo Washington via Mailman-users wrote: [...]
I should have found that link that always points those who install MM3 using OS packages to the Package maintainers as the primary line of support [...]
There's https://wiki.list.org/DOC/I%20installed%20Mailman%20from%20a%20package%20or%... but there might be a shortened link for that I'm unaware of.
Also coming from the Debian side of things they try to mirror that advice in https://www.debian.org/Bugs/Reporting where it has an entire section called "Don't file bugs upstream" pointing out that the maintainer of the package in the distro is better placed to determine if the problem you're facing exists only within the packaged version due to downstream customization, or has perhaps been fixed upstream in a newer release than is being distributed in the package you're using.
-- Jeremy Stanley

On 10/9/25 9:04 AM, Jeremy Stanley wrote:
There's https://wiki.list.org/DOC/ I%20installed%20Mailman%20from%20a%20package%20or%20I%20followed%20a%20HowTo%20document.%20Where%20do%20I%20go%20for%20help%3F but there might be a shortened link for that I'm unaware of.
On any of the pages at https://wiki.list.org/ there is a TinyURL link in the left column which when clicked will add a message with a short link to the top of the page. In this case, that short link is https://wiki.list.org/x/12812344
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

Odhiambo Washington via Mailman-users writes:
I am sorry if my wording was interpreted as "go away" :-)
I'm not sure what the OP felt. I just want to be sure we make this forum as welcoming as possible. And I may be projecting my problems on you, as I'm experiencing some frustration with various support activities these days. ^^;
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan

On 10/9/25 17:06, Stephen J. Turnbull wrote:
Odhiambo Washington via Mailman-users writes:
You can remedy that by wiping away the packages and installing MM3 by following the guide below:
@Flo: It is possible to do this safely and preserve your existing sites and lists. If we can't help you with your existing installation, we can guide you through this process. The basic idea is that because almost all the interesting data is in your database or /etc/mailman3, you can just plug in the new Mailman system, point things at the right places (probably the file system layout will change so you'll need to change some things in mailman.cfg, settings.py, and some related systems like logrotate and systemd).
Usually I avoid installing software directly as there is more maintenance effort than having installed it from OS-packages.
In this case I see that I have permanently troubles with this software (OS-packages) so your suggestion is worth to consider.
Is there a possibility to export all members including real names. It doesn't work with Postorius, yet, is there another possibility? If I have my user data exported, I could delete everything and start from scratch. Maybe this is the most reasonable ...
Flo

On 2025-10-09 23:39:11 +0200 (+0200), Flo via Mailman-users wrote: [...]
Is there a possibility to export all members including real names. It doesn't work with Postorius, yet, is there another possibility? [...]
It's all stored in a relational database, which you should be able to extract with a tool like mysqldump and then later source that same dump into a new empty database.
You can find some information on database setup in the documentation here: https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/docs/databa... Some familiarity with backing up, restoring and manipulating databases is a big help for these sorts of tasks, otherwise it may have a fairly steep learning curve.
-- Jeremy Stanley

Jeremy Stanley writes:
It's all stored in a relational database,
This isn't quite true:
- order of shutdown matters because you want to be sure queues are flushed
- several queues (bad, shunt, queues internal to archiver plugins, specifically HyperKitty) do not get flushed (bad cannot be flushed)
- some database items (eg, custom templates) get cached on disk, and people sometimes modify them on disk and/or add new template directory to the template search path
which you should be able to extract with a tool like mysqldump and then later source that same dump into a new empty database.
This is often unnecessary. If you're going to be running the new Mailman on the same host, you can probably keep the old database running, and point the new Mailman applications to it.
You can find some information on database setup in the documentation here: https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/docs/databa... Some familiarity with backing up, restoring and manipulating databases is a big help for these sorts of tasks, otherwise it may have a fairly steep learning curve.
Let me second Jeremy's advice above. Consider the skills you have available to you when deciding how to do the migration, and feel free to discuss your plans here.
-- GNU Mailman consultant (installation, migration, customization) Sirius Open Source https://www.siriusopensource.com/ Software systems consulting in Europe, North America, and Japan

On 10/9/25 2:39 PM, Flo via Mailman-users wrote:
In this case I see that I have permanently troubles with this software (OS-packages) so your suggestion is worth to consider.
Is there a possibility to export all members including real names. It doesn't work with Postorius, yet, is there another possibility? If I have my user data exported, I could delete everything and start from scratch. Maybe this is the most reasonable ...
You can install mailman following https://docs.mailman3.org/en/latest/install/virtualenv.html and keep your existing database(s) which will include all lists and memberships.
The current released versions of Postorius include only emails in the csv export. This is fixed for the next release by https://gitlab.com/mailman/postorius/-/merge_requests/993
You can currently get a list of members with display names with the
mailman members
command. See mailman members --help
.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/10/25 03:59, Mark Sapiro wrote:
Is there a possibility to export all members including real names. It doesn't work with Postorius, yet, is there another possibility? If I have my user data exported, I could delete everything and start from scratch. Maybe this is the most reasonable ...
You can install mailman following https://docs.mailman3.org/en/latest/ install/virtualenv.html and keep your existing database(s) which will include all lists and memberships.
I think I am still using a sqlite database. This is the database when I installed the packages. There is a hint that it should be replaced by mysql or postgres.
I only have very few lists, yet. The only thing I really don't want to loose is the addresses and names.
The current released versions of Postorius include only emails in the csv export. This is fixed for the next release by https://gitlab.com/ mailman/postorius/-/merge_requests/993
You can currently get a list of members with display names with the
mailman members
command. Seemailman members --help
.
This is working! That's great.
Thank you!
Flo

On 10/9/25 5:02 AM, Flo via Mailman-users wrote:
Hi,
I added a new site in Django: lists.example.com
Usually I click on 'view site' and I can add a Domain in Postorios. In this case I get an error message and I need to add a Domain in Django. Then I can go to 'view site'.
I can create a mailing list there. However when I send an email to be subscribed, I get the following in mailman.log (and nothing else happens):
Oct 09 13:46:24 2025 (110452) deque: do_confirm_verify Traceback (most recent call last): ... File "/usr/lib/python3/dist-packages/mailman/model/domain.py", line 177, in __getitem__ raise KeyError(mail_host) KeyError: 'lists.example.com'
It appears you don't have a domain in Mailman core with mail_host = 'lists.example.com'.
Do you see one in Postorius' domains view? If not, perhaps you need to add it.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/9/25 19:19, Mark Sapiro wrote:
On 10/9/25 5:02 AM, Flo via Mailman-users wrote:
Hi,
I added a new site in Django: lists.example.com
Usually I click on 'view site' and I can add a Domain in Postorios. In this case I get an error message and I need to add a Domain in Django. Then I can go to 'view site'.
I can create a mailing list there. However when I send an email to be subscribed, I get the following in mailman.log (and nothing else happens):
Oct 09 13:46:24 2025 (110452) deque: do_confirm_verify Traceback (most recent call last): ... File "/usr/lib/python3/dist-packages/mailman/model/domain.py", line 177, in __getitem__ raise KeyError(mail_host) KeyError: 'lists.example.com'
It appears you don't have a domain in Mailman core with mail_host = 'lists.example.com'.
Do you see one in Postorius' domains view? If not, perhaps you need to add it.
I can see it in Postorius.
I have created the a simialar site before and deleted the site and then again created this one. Maybe the database is messed up?
I have deleted site - group - list now. And created the site again. If I go to 'view site' I see all mailing lists on the server and not only from this site/domain. This is the first thing where it shows irregularities.
Flo

On 10/9/25 2:29 PM, Flo via Mailman-users wrote:
I can see it in Postorius.
If the Postorius domains view shows a domain with lists.example.com
as
the email host, the KeyError: 'lists.example.com' exception should not
occur.
I have created the a simialar site before and deleted the site and then again created this one. Maybe the database is messed up?
Probably not. The Postorius domains view shows you what's in the database.
I have deleted site - group - list now. And created the site again. If I go to 'view site' I see all mailing lists on the server and not only from this site/domain. This is the first thing where it shows irregularities.
I'm not sure what you mean by view site
but if you mean the VIEW SITE
link at the top of the Django admin UI, that is just a link to the host
site. I.e., if the Django admin page is
https://www.example.com/admin/site/, its VIEW SITE link just goes to
https://www.example.com/ and it's always the same link regardless of
what Django admin page you are on.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/10/25 04:13, Mark Sapiro wrote:
I have deleted site - group - list now. And created the site again. If I go to 'view site' I see all mailing lists on the server and not only from this site/domain. This is the first thing where it shows irregularities.
I'm not sure what you mean by
view site
but if you mean the VIEW SITE link at the top of the Django admin UI, that is just a link to the host site. I.e., if the Django admin page is https://www.example.com/admin/ site/, its VIEW SITE link just goes to https://www.example.com/ and it's always the same link regardless of what Django admin page you are on.
The url of the Django view is lists.example.com/mailman3/admin. The 'VIEW SITE' is in the header on the right side. It's a link to lists.example.com/mailman3 which apparently gets redirected to lists.example.com/mailman3/postorius/lists.
The difference I am talking about is that lists.example1.com/postorius/lists shows only its mailing lists while lists.example2.com/postorius/lists shows all mailing lists on the server (ie. also mailing lists of example1.com).
Flo

On 10/10/25 1:37 AM, Flo via Mailman-users wrote:
The difference I am talking about is that lists.example1.com/postorius/ lists shows only its mailing lists while lists.example2.com/postorius/ lists shows all mailing lists on the server (ie. also mailing lists of example1.com).
What is your Postorius version? Whether Postorius displays all lists or only those matching the current host is controlled by the FILTER_VHOST setting. There was an issue with this prior to Postorius 1.3.3. See https://gitlab.com/mailman/postorius/-/issues/394
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/10/25 17:46, Mark Sapiro wrote:
On 10/10/25 1:37 AM, Flo via Mailman-users wrote:
The difference I am talking about is that lists.example1.com/ postorius/ lists shows only its mailing lists while lists.example2.com/postorius/ lists shows all mailing lists on the server (ie. also mailing lists of example1.com).
What is your Postorius version? Whether Postorius displays all lists or only those matching the current host is controlled by the FILTER_VHOST setting. There was an issue with this prior to Postorius 1.3.3. See https://gitlab.com/mailman/postorius/-/issues/394
Postorius Version 1.3.13, /usr/share/mailman3-web/settings.py: FILTER_VHOST = True , however, this is set for the whole server and not for single domains/sites, right?
In my case mail_host is the same as web_host so I shouldn't be touched by that problem anyway.
Flo

On 10/10/25 10:29 AM, Flo via Mailman-users wrote:
Postorius Version 1.3.13, /usr/share/mailman3-web/settings.py: FILTER_VHOST = True , however, this is set for the whole server and not for single domains/sites, right?
Right.
In my case mail_host is the same as web_host so I shouldn't be touched by that problem anyway.
What do you get from the following database query
SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id;
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/10/25 20:47, Mark Sapiro wrote:
What do you get from the following database query
SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id;
A while ago I have done a bit of database programming, however here I am lost, please help, where should I place this query to get a result?
Thanks. Flo

On 10/10/25 12:15 PM, Flo via Mailman-users wrote:
On 10/10/25 20:47, Mark Sapiro wrote:
What do you get from the following database query
SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id;
A while ago I have done a bit of database programming, however here I am lost, please help, where should I place this query to get a result?
I think you said your database is sqlite. If so, in the Debian package it is probably at /var/lib/mailman/data/mailman.db. You can point the sqlite3 command at the database and issue the query at the prompt.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/10/25 22:35, Mark Sapiro wrote:
On 10/10/25 12:15 PM, Flo via Mailman-users wrote:
On 10/10/25 20:47, Mark Sapiro wrote:
What do you get from the following database query
SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id;
A while ago I have done a bit of database programming, however here I am lost, please help, where should I place this query to get a result?
I think you said your database is sqlite. If so, in the Debian package it is probably at /var/lib/mailman/data/mailman.db. You can point the sqlite3 command at the database and issue the query at the prompt.
:/var/lib/mailman3/data# sqlite3 mailman.db SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. sqlite> SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id; Parse error: no such table: django_mailman3_maildomain sqlite>
Flo

On 10/10/25 1:47 PM, Flo via Mailman-users wrote:
:/var/lib/mailman3/data# sqlite3 mailman.db SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. sqlite> SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id; Parse error: no such table: django_mailman3_maildomain sqlite>
Is there a second database? Something like mailmanweb.db. If so, use that one.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/11/25 00:18, Mark Sapiro wrote:
On 10/10/25 1:47 PM, Flo via Mailman-users wrote:
:/var/lib/mailman3/data# sqlite3 mailman.db SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. sqlite> SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id; Parse error: no such table: django_mailman3_maildomain sqlite>
Is there a second database? Something like mailmanweb.db. If so, use that one.
I found it, it's in a different directory:
/var/lib/mailman3/web# sqlite3 mailman3web.db SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. sqlite> SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id; ... ... 8|lists.example.com|7|7|Lists of Example|lists.example.com sqlite>
The two working domains are first (...) . The problematic domain (renamed to lists.example.com) appears when I create it in Postorius.
For me the only conspicuous is that the numbers are 8|.|7|7 while at the other two entries they are the same for the whole line: 2|.|2|2 and 4|.|4|4 .
Flo

On 10/10/25 3:46 PM, Flo via Mailman-users wrote:
I found it, it's in a different directory:
/var/lib/mailman3/web# sqlite3 mailman3web.db SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. sqlite> SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id; ... ... 8|lists.example.com|7|7|Lists of Example|lists.example.com sqlite>
The two working domains are first (...) . The problematic domain (renamed to lists.example.com) appears when I create it in Postorius.
For me the only conspicuous is that the numbers are 8|.|7|7 while at the other two entries they are the same for the whole line: 2|.|2|2 and 4|.| 4|4 .
The fields in order are:
- the id of the django_mailman3_maildomain entry
- the mail_domain in the django_mailman3_maildomain entry
- the site_id the django_mailman3_maildomain entry
- the id of the django-site entry
- the domain name in the django-site entry
- the display name in the django-site entry
The important things are 2. and 5. which are the mail host and the web host that you see in the Postorius domains view. 3. and 4. are what we joined on so they will always be the same. They aren't related to 1. which is just sequentially assigned when entries are created. 1., 3. and 4. being equal in some cases is a coincidence.
The question is what are the other 2 entries. In particular are all 3 values for 2. different and all 3 values for 5. different or are some the same?
If 2 of those entries have the same value for 5. and different values for 2., that explains the issue when accessing Postorius at 5. because that web host does not have a unique mail host.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/11/25 04:45, Mark Sapiro wrote:
On 10/10/25 3:46 PM, Flo via Mailman-users wrote:
/var/lib/mailman3/web# sqlite3 mailman3web.db SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. sqlite> SELECT * from django_mailman3_maildomain JOIN django_site ON site_id = django_site.id; ... ... 8|lists.example.com|7|7|Lists of Example|lists.example.com sqlite>
The fields in order are:
- the id of the django_mailman3_maildomain entry
- the mail_domain in the django_mailman3_maildomain entry
- the site_id the django_mailman3_maildomain entry
- the id of the django-site entry
- the domain name in the django-site entry
- the display name in the django-site entry
For me it looks like that 5 is the display name and 6 the domain name
The important things are 2. and 5. which are the mail host and the web host that you see in the Postorius domains view. 3. and 4. are what we joined on so they will always be the same. They aren't related to 1. which is just sequentially assigned when entries are created. 1., 3. and 4. being equal in some cases is a coincidence.
The question is what are the other 2 entries. In particular are all 3 values for 2. different and all 3 values for 5. different or are some the same?
If 2 of those entries have the same value for 5. and different values for 2., that explains the issue when accessing Postorius at 5. because that web host does not have a unique mail host.
For each of the lines mail_domain (field 2) is the same as the domain name (field 6, if I am right). Any domain name (and mail_domain, which has the same value) differs from the ones in any other line.
So they are unique.
Flo

On 10/11/25 4:58 AM, Flo via Mailman-users wrote:
On 10/11/25 04:45, Mark Sapiro wrote:
The fields in order are:
- the id of the django_mailman3_maildomain entry
- the mail_domain in the django_mailman3_maildomain entry
- the site_id the django_mailman3_maildomain entry
- the id of the django-site entry
- the domain name in the django-site entry
- the display name in the django-site entry
For me it looks like that 5 is the display name and 6 the domain name
Possibly sqlite displays them in a different order. To be sure you could do
SELECT mail_domain, domain FROM django_mailman3_maildomain JOIN django_site ON site_id = django_site.id;
which will display only the mail_domain and the site domain.
For each of the lines mail_domain (field 2) is the same as the domain name (field 6, if I am right). Any domain name (and mail_domain, which has the same value) differs from the ones in any other line.
So they are unique.
Anyway, if all 3 mail_domain values are unique, that doesn't explain the issue. I can only guess that this is a Debian package issue.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On 10/11/25 18:54, Mark Sapiro wrote:
Possibly sqlite displays them in a different order. To be sure you could do
SELECT mail_domain, domain FROM django_mailman3_maildomain JOIN django_site ON site_id = django_site.id;
which will display only the mail_domain and the site domain.
I did it and it's like I described below. Unfortunately no news.
For each of the lines mail_domain (field 2) is the same as the domain name (field 6, if I am right). Any domain name (and mail_domain, which has the same value) differs from the ones in any other line.
So they are unique.
Anyway, if all 3 mail_domain values are unique, that doesn't explain the issue. I can only guess that this is a Debian package issue.
So I have to install directly without Debian packages ...
Thank you for your help.
Flo
participants (5)
-
Flo
-
Jeremy Stanley
-
Mark Sapiro
-
Odhiambo Washington
-
Stephen J. Turnbull