Re: Where to start looking?
by Mark Sapiro
On 3/11/26 17:05, Paul Tomblin via Mailman-users wrote:
> So I imported all our mailman2 lists into mailman3, and it appears it didn't preserve passwords. So my wife (who administers 3 lists of her own) tried to use the reset password link (multiple times) but she never gets the email. I don't see any outgoing email to her in mail.log, or any of the mailman logs. I do the exact same thing as her and I get the email. Any suggestions on what I should be looking for?
Mailman 2.1 passwords have no meaning in Mailman 3 and aren't imported.
in MM 2.1 passwords were per list per member.
In Mailman 3 core, there are no corresponding passwords. Passwords are
for logging in to the web UI which is separate.
Bottom line. You need to go to <https://your.site/accounts/signup/> and
signup for an account. Then if you have more than one email address, go
to <https://your.site/accounts/email/> and add your other addresses.
Then, once logged in you should be able to manage any lists for which
one of your addresses was imported as an owner and moderate any lists
for which one of your addresses was imported as a moderator.
Your wife can't get a password reset email because she hasn't signed up
for an account and there is no password to reset. Apparently you did
sign up for an account or maybe if you've configured any social account
logins, you logged in with one of those which will create an account for
you.
You might find <https://docs.mailman3.org/en/latest/django-primer.html>
useful. It discusses a bit about Django which is the web framework for
Postorius and HyperKitty.
--
Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
7 months, 4 weeks
Re: mailman 3.x upgrade and downgrade
by Mark Sapiro
On 7/12/22 6:12 AM, skooperit(a)gmail.com wrote:
> Hi all,
>
> I have a few contradictory questions.
>
> 1. How to upgrade the 3.x version?
>
> 2. Is it possible to migrate (downgrade) the lists from mailman 3.x to 2.1?
>
> 3. If so, what would be the best way to do that?
>
>
> My mailing list server is running on a CenOS-7x with postgreSQL and the following mailman packages:
>
> django-mailman3 1.3.5
> mailman 3.3.2
> mailman-hyperkitty 1.1.0
> mailman-web 0.0.3
> mailmanclient 3.3.2
> postorius 1.3.3
>
> We have ~200 lists with more than a decade of history.
So you have installed Mailman 3, apparently following
https://docs.mailman3.org/en/latest/install/virtualenv.html. There is a
caveat. Current released versions of HyperKitty (I don't see your
version above) don't work with mistune >= 2.0.0.
This is https://gitlab.com/mailman/hyperkitty/-/issues/431, fixed by
https://gitlab.com/mailman/hyperkitty/-/merge_requests/379 but not yet
released.
If your installed mistune is not 2.0.0rc1, you can work around this with
this patch
```
--- a/hyperkitty/lib/renderer.py
+++ b/hyperkitty/lib/renderer.py
@@ -4,7 +4,7 @@ from django.conf import settings
import mistune
from mistune.plugins.extra import plugin_url
-from mistune.scanner import escape_html, escape_url
+from mistune.util import escape_html, escape_url
class MyRenderer(mistune.HTMLRenderer):
```
Or you can downgrade mistune with
```
pip install mistune==2.0.0rc1
```
in your virtualenv.
To answer your questions, to migrate your lists, you use `mailman
import21` and to migrate archives, `mailman-web hyperkitty_import`. Give
these commands with the `--help` option for more info.
Downgrading lists from Mailman 3 to Mailman 2.1 is not currently
possible. There is no inverse to `mailman import21`. You can export a
HyperKitty archive as a mbox to use as input to Mailman 2.1s bin/arch.
--
Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
4 years, 3 months
Re: [Mailman-Developers] Mailman 3.1 beta coming soon
by Florian Fuchs
On Sat, Dec 03, 2016 at 17:25:24PM -0800, Terri Oda wrote:
>On 2016-12-03 12:22 PM, Florian Fuchs wrote:
>>I did some manual integration testing today
>>(core+mailmanclient+postorius) which looked fine so far. I didn't get
>>to test HyperKitty and the bundler though, so any help testing those
>>would be very much appreciated. I will have some more time tomorrow.
>
>I tried to do some testing based on these wiki instructions last weekend
>https://wiki.list.org/HyperKitty/DevelopmentSetupGuide
>
>and hit a "[Errno 61] Connection refused" issue when attempting to log
>in to Postorius. I suspect it might be an issue with the mac, since
>googling for the error (it's a django one) seems to find a lot of
>people on macs with problems, but I didn't manage to narrow it down
>more than that to make a useful bug report.
Do you have a traceback somewhere? If you're logging in for the first
time, it *might* have to do with allauth trying to verify your email
address by sending you an confirmation email (which probably fails if
you don't have smtp set up on your mac).
If that's the case, we should probably try to catch this condition and
display a useful error message instead of just letting it break.
Cheers
Florian
>I did set up a new linux install on another machine to work on next,
>though, so I may have something else to say on that front tomorrow.
>
> Terri
>
>
>_______________________________________________
>Mailman-Developers mailing list
>Mailman-Developers(a)python.org
>https://mail.python.org/mailman/listinfo/mailman-developers
>Mailman FAQ: http://wiki.list.org/x/AgA3
>Searchable Archives: http://www.mail-archive.com/mailman-developers%40python.org/
>Unsubscribe: https://mail.python.org/mailman/options/mailman-developers/f%40florianfuchs…
>
>Security Policy: http://wiki.list.org/x/QIA9
9 years, 11 months
use_https not being honored?
by Stephen J. Turnbull
sean.p.kiernan--- via Mailman-users writes:
> Using Mailman core 3.3.5, and Mailman API 3.1, I have use_https:
> yes set in my mailman.cfg so that I can use https for calls to the
> API,
Despite the name, that's not what use_https does. It means to use
"https" when formatting its URL, and AFAICS that's all it does. In
particular it does not configure gunicorn (which provides the REST
server) to use HTTPS as far as I can tell.
> however even in mailman.log, it still says it is using http:
>
> [2022-06-01 09:35:54 -0500] [959009] [INFO] Starting gunicorn 20.1.0
> [2022-06-01 09:35:54 -0500] [959009] [INFO] Listening at: http://hostname:8001 (959009)
>
> GET and POST requests work fine if I use http, but fail when trying
> to use https.
You need to set some or all of the settings here where gunicorn can
find them.
https://docs.gunicorn.org/en/stable/settings.html#ssl
I believe this can be done either in the gunicorn.cfg file or in the
[webservice] section of mailman.cfg. This is separate configuration
information from any configuration of server credentials you provide
for Postorius or HyperKitty.
> I've only recently started using Mailman so if there are additional
> logs or system information I need to help with this?
I'm pretty sure what I wrote above diagnoses the issue correctly, but
for the future "didn't work" doesn't tell us enough. You should
always provide the exact error message, exactly as presented. If you
get a traceback of function calls, you should provide that whole thing
as well. You may redact "sensitive" information (which includes
personal names, usernames, passwords, and the like, but for some folks
also things like IP addresses and domain names). However, try to
ensure that there's a one-to-one relation between redacted items and
the substitutes.
Steve
4 years, 5 months
Re: Not able to start mailman server
by Mark Sapiro
On 8/5/21 12:53 AM, Kartheek Reddy Bondugula wrote:
> Hi,
>
> I am trying to setup postorius using this website -
>
> https://docs.mailman3.org/projects/mailman/en/release-3.0/src/mailman/docs/W...
That documentation is out of date.
Start at https://docs.mailman3.org/en/latest/
> I am trying to create a mailling list and it web interface for the users in my group
>
> The command 'pip install -e ./'(python3) runs successfully but still i am not able to start the server
Is the result the same as in your post at
https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message…,
i.e.,
/usr/local/Cellar/python(a)3.9/3.9.5/bin/python3.9: can't open file
'/usr/local/opt/python(a)3.9/bin/master': [Errno 2] No such file or directory
> my mailman info shows -
>
> GNU Mailman 3.3.5b1 (Tom Sawyer)
> Python 3.9.5 (default, May 4 2021, 03:36:27)
> [Clang 12.0.0 (clang-1200.0.32.29)]
> config file: /Users/.../Documents/mailman/var/etc/mailman.cfg
> db url: sqlite:////Users/.../Documents/mailman/var/data/mailman.db
> devmode: DISABLED
> REST root url: http://localhost:8001/3.1/
> REST credentials: restadmin:restpass
We recommend following this guide
https://docs.mailman3.org/en/latest/install/virtualenv.html
What is the content of the
/Users/.../Documents/mailman/var/etc/mailman.cfg file?
The 'pip install -e ./' command should have created a bin/ directory
containing both `mailman` and `master` executable files and this
`mailman` command is the one you should be running. It appears the
`mailman` command you are running is
'/usr/local/opt/python(a)3.9/bin/mailman'. If that is in fact a symlink to
a different bin/mailman file, there should also be a symlink from
'/usr/local/opt/python(a)3.9/bin/master' to the existing bin/master or you
should adjust your path.
What do `which -a mailman` and `which -a master` show?
--
Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
5 years, 3 months
Re: Internal Server Errors in mailmanweb.log
by Washington Odhiambo
On Sat, Jan 24, 2026 at 12:11 AM Mark Sapiro <mark(a)msapiro.net> wrote:
> On 1/22/26 00:53, Washington Odhiambo via Mailman-users wrote:
> > On Thu, Dec 25, 2025 at 10:46 AM Washington Odhiambo <odhiambo(a)gmail.com
> >
> > wrote:
> >
> > For some reason, my mailmanweb (I am using Gunicorn) has been misbehaving
> > lately.
> > The last change I ever made to my MM3 installation is when I applied the
> > patch mentioned in this thread.
> > The misbehavior manifests in the Postrorius web UI becoming inaccessible,
> > much as mailmanweb is running.
>
> It looks like all the logged errors result from an attempt to export a
> thread from HyperKitty. Is it this export that precipitates the issue?
I am not trying to export any threads at all. I haven't tried doing it for
whatever reason.
So the fact that there is even an attempt at exporting it is strange.
I first encountered this issue when I got notified of some held messages
that required moderation.
Postorius failed to load. And on checking the status of mailmaweb, I
realized it's running, but using so much RAM.
I restarted it and I was able to access Postorius.
And now this has become an almost daily routine - restarting it.
> I.e, can you access Postorius first thing after a clean start of
> mailman web?
Yes.
What I have realized though is that after restarting it, with time its
memory usage begins to increase significantly fast.
Within no time, it's already using 1GB+ RAM.
As I write this email, this is what I just seen on checking it:
```
root@eu:/home/wash# systemctl status mailmanweb
● mailmanweb.service - GNU Mailman Web UI
Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled;
preset: enabled)
Active: active (running) since Fri 2026-01-23 16:43:28 EAT; 20h ago
Main PID: 1758633 (gunicorn)
Tasks: 3 (limit: 28775)
Memory: 2.0G
CPU: 8h 4min 40.949s
CGroup: /system.slice/mailmanweb.service
├─1758633 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
├─2665379 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
└─2665624 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
Jan 24 13:10:46 eu.kictanet.or.ke gunicorn[2663345]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:11:19 eu.kictanet.or.ke gunicorn[2663765]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:11:36 eu.kictanet.or.ke gunicorn[2663948]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:11:52 eu.kictanet.or.ke gunicorn[2664060]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:12:27 eu.kictanet.or.ke gunicorn[2664535]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:12:40 eu.kictanet.or.ke gunicorn[2664626]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:12:59 eu.kictanet.or.ke gunicorn[2664813]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:13:33 eu.kictanet.or.ke gunicorn[2665220]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:13:51 eu.kictanet.or.ke gunicorn[2665379]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:14:05 eu.kictanet.or.ke gunicorn[2665624]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
root@eu:/home/wash#
```
> If so, is it only when you try to export a thread from HyperKitty that the
> issues start?
>
I am not trying to export any threads at all.
Check this:
root@eu:/home/wash# systemctl restart mailmanweb
root@eu:/home/wash# systemctl status mailmanweb
● mailmanweb.service - GNU Mailman Web UI
Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled;
preset: enabled)
Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 6s ago
Main PID: 2679426 (gunicorn)
Tasks: 3 (limit: 28775)
Memory: 158.0M
CPU: 3.358s
CGroup: /system.slice/mailmanweb.service
├─2679426 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
├─2679427 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
└─2679429 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service -
GNU Mailman Web UI.
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
root@eu:/home/wash# systemctl status mailmanweb
● mailmanweb.service - GNU Mailman Web UI
Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled;
preset: enabled)
Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 12s ago
Main PID: 2679426 (gunicorn)
Tasks: 3 (limit: 28775)
Memory: 162.3M
CPU: 6.971s
CGroup: /system.slice/mailmanweb.service
├─2679426 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
├─2679427 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
└─2679429 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service -
GNU Mailman Web UI.
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
root@eu:/home/wash# systemctl status mailmanweb
● mailmanweb.service - GNU Mailman Web UI
Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled;
preset: enabled)
Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 15s ago
Main PID: 2679426 (gunicorn)
Tasks: 3 (limit: 28775)
Memory: 162.4M
CPU: 8.193s
CGroup: /system.slice/mailmanweb.service
├─2679426 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
├─2679427 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
└─2679429 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service -
GNU Mailman Web UI.
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
root@eu:/home/wash# systemctl status mailmanweb
● mailmanweb.service - GNU Mailman Web UI
Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled;
preset: enabled)
Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 18s ago
Main PID: 2679426 (gunicorn)
Tasks: 3 (limit: 28775)
Memory: 210.5M
CPU: 8.629s
CGroup: /system.slice/mailmanweb.service
├─2679426 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
├─2679427 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
└─2679429 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service -
GNU Mailman Web UI.
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
root@eu:/home/wash# systemctl status mailmanweb
● mailmanweb.service - GNU Mailman Web UI
Loaded: loaded (/etc/systemd/system/mailmanweb.service; enabled;
preset: enabled)
Active: active (running) since Sat 2026-01-24 13:33:42 EAT; 38s ago
Main PID: 2679426 (gunicorn)
Tasks: 3 (limit: 28775)
Memory: 1.3G
CPU: 24.429s
CGroup: /system.slice/mailmanweb.service
├─2679426 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
├─2679427 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
└─2679429 /opt/mailman/venv/bin/python3
/opt/mailman/venv/bin/gunicorn -c /etc/mailman3/gunicorn.conf.py
mailman_web.wsgi:application
Jan 24 13:33:42 eu.kictanet.or.ke systemd[1]: Started mailmanweb.service -
GNU Mailman Web UI.
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679427]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
Jan 24 13:33:43 eu.kictanet.or.ke gunicorn[2679429]: Updated PYTHONPATH to
: /etc/mailman3/:/etc/mailman3
root@eu:/home/wash#
--
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]
9 months, 2 weeks
Re: mailman admin (django) interface does not work anymore after deleting website example.com
by Abhilash Raj
On Sun, Mar 10, 2019, at 9:00 AM, Torge Riedel wrote:
> Am 10.03.19 um 16:44 schrieb Mark Sapiro:
> > On 3/10/19 8:18 AM, Torge Riedel wrote:
> >> I deleted the existing "example.com" and added a new one
> >> "lists.mydomain.de".
> >>
> >> Now the admin (django) interface always gives "An error occurred while
> >> processing your request". After one of the first navigation clicks I saw
> >> a message that "site with id 1 is missing".
> >
> > In your Django settings your have
> >
> > SITE_ID = 1
> >
> > which pointed to the example.com domain you deleted.
> >
> > You need to override this in settings_local.py. Probably
> >
> > SITE_ID = 2
> >
> > but if that doesn't work, try '0'
> >
> Ah, thank you Mark. That makes a kind of sense. I changed the database
> directly to fix it. And renamed example.com to lists.mydomain.de. Now
> the error is gone.
>
> I'm wondering why the initial database set up of postorius (?) adds
> "example.com". Is there a way to directly add my domain instead?
> Somewhere in settings_local.py?
Django does that and there doesn't seem to be a way to override that to
something else during initial migration. Or nothing I have found yet.
Only way is to edit "example.com" to something you'd like or add another
domain entry and change SITE_ID to point o that.
> _______________________________________________
> Mailman-users mailing list -- mailman-users(a)mailman3.org
> To unsubscribe send an email to mailman-users-leave(a)mailman3.org
> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
>
--
thanks,
Abhilash Raj (maxking)
7 years, 7 months
Re: ModuleNotFoundError: No module named 'mailman_web'
by gordon@dickens.com
This is the entire error sent via email every minute or so:
Traceback (most recent call last):
File "/opt/mailman/venv/bin/mailman-web", line 5, in <module>
from mailman_web.manage import main
ModuleNotFoundError: No module named 'mailman_web'
When I try to login to mailman then I get thse following error:
Service Unavailable: /mailman3/lists/
Report at /mailman3/lists/
Service Unavailable: /mailman3/lists/
Request Method: GET
Request URL: http://host2.mailhub4u.com/mailman3/lists/
Django Version: 3.0.14
Python Executable: /opt/mailman/venv/bin/uwsgi
Python Version: 3.9.2
Python Path: ['.', '', '/etc/mailman3', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/opt/mailman/venv/lib/python3.9/site-packages']
Server time: Tue, 31 Oct 2023 21:08:56 +0000
Installed Applications:
('hyperkitty',
'postorius',
'django_mailman3',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'django_gravatar',
'compressor',
'haystack',
'django_extensions',
'django_q',
'allauth',
'allauth.account',
'allauth.socialaccount')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django_mailman3.middleware.TimezoneMiddleware',
'postorius.middleware.PostoriusMiddleware')
Request information:
USER: gordon
GET: No GET data
POST: No POST data
FILES: No FILES data
COOKIES:
csrftoken = 'BgEa4GddvSCScj8Bm9aSJz2V2vuvQin3boRLAM4ZqjL8Aq1I0l989xbv6nI2LbuS'
PHPSESSID = 'a36fftlm8j0khrlciu3uut8n5a'
testing = '1'
sid = '8a3f6ce1fe7c07389eea7d68f5346563'
sessiontest = '1'
Horde = '48dflipuqm8oi32on7dadjffl8'
horde_secret_key = '4jhq7cri14q2vdkvs3r6r2auqk'
sessionid = 'gsrrjekrl6huw5myr37lop21cyltpmst'
META:
CSRF_COOKIE = 'BgEa4GddvSCScj8Bm9aSJz2V2vuvQin3boRLAM4ZqjL8Aq1I0l989xbv6nI2LbuS'
HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8'
HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.5'
HTTP_AUTHORIZATION = 'Basic cm9vdDokQ3JAYmJ5LVAzbGljYW4k'
HTTP_CONNECTION = 'Keep-Alive'
HTTP_COOKIE = 'csrftoken=BgEa4GddvSCScj8Bm9aSJz2V2vuvQin3boRLAM4ZqjL8Aq1I0l989xbv6nI2LbuS; PHPSESSID=a36fftlm8j0khrlciu3uut8n5a; testing=1; sid=8a3f6ce1fe7c07389eea7d68f5346563; sessiontest=1; Horde=48dflipuqm8oi32on7dadjffl8; horde_secret_key=4jhq7cri14q2vdkvs3r6r2auqk; sessionid=gsrrjekrl6huw5myr37lop21cyltpmst'
HTTP_HOST = '127.0.0.1:8000'
HTTP_REFERER = 'https://host2.mailhub4u.com/mailman3/lists/'
HTTP_SEC_FETCH_DEST = 'document'
HTTP_SEC_FETCH_MODE = 'navigate'
HTTP_SEC_FETCH_SITE = 'same-origin'
HTTP_SEC_FETCH_USER = '?1'
HTTP_UPGRADE_INSECURE_REQUESTS = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0'
HTTP_X_FORWARDED_FOR = '173.165.166.34'
HTTP_X_FORWARDED_HOST = 'host2.mailhub4u.com'
HTTP_X_FORWARDED_SERVER = 'host2.mailhub4u.com'
PATH_INFO = '/mailman3/lists/'
QUERY_STRING = ''
REMOTE_ADDR = '127.0.0.1'
REQUEST_METHOD = 'GET'
REQUEST_URI = '/mailman3/lists/'
SCRIPT_NAME = ''
SERVER_NAME = 'slc.mailhub4u.com'
SERVER_PORT = '8000'
SERVER_PROTOCOL = 'HTTP/1.1'
uwsgi.core = 0
uwsgi.node = b'slc.mailhub4u.com'
uwsgi.version = b'2.0.20'
wsgi.errors = <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
wsgi.file_wrapper = ''
wsgi.input = <uwsgi._Input object at 0x7f509a270810>
wsgi.multiprocess = False
wsgi.multithread = True
wsgi.run_once = False
wsgi.url_scheme = 'http'
wsgi.version = '(1, 0)'
Settings:
Using settings module settings
ABSOLUTE_URL_OVERRIDES = {}
ACCOUNT_AUTHENTICATION_METHOD = 'username_email'
ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_UNIQUE_EMAIL = True
ADMINS = "(('Mailman Suite Admin', 'gordon(a)mailhub4u.com'),)"
ALLOWED_HOSTS = ['*']
APPEND_SLASH = True
AUTHENTICATION_BACKENDS = "('django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend')"
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'auth.User'
BASE_DIR = PosixPath('/opt/mailman/web')
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
COMPRESSORS = {'css': 'compressor.css.CssCompressor', 'js': 'compressor.js.JsCompressor'}
COMPRESS_CACHEABLE_PRECOMPILERS = '()'
COMPRESS_CACHE_BACKEND = 'default'
COMPRESS_CACHE_KEY_FUNCTION = '********************'
COMPRESS_CLEAN_CSS_ARGUMENTS = ''
COMPRESS_CLEAN_CSS_BINARY = 'cleancss'
COMPRESS_CLOSURE_COMPILER_ARGUMENTS = ''
COMPRESS_CLOSURE_COMPILER_BINARY = 'java -jar compiler.jar'
COMPRESS_CSS_HASHING_METHOD = 'mtime'
COMPRESS_DATA_URI_MAX_SIZE = 1024
COMPRESS_DEBUG_TOGGLE = None
COMPRESS_ENABLED = True
COMPRESS_FILTERS = {'css': ['compressor.filters.css_default.CssAbsoluteFilter', 'compressor.filters.cssmin.rCSSMinFilter'], 'js': ['compressor.filters.jsmin.rJSMinFilter']}
COMPRESS_JINJA2_GET_ENVIRONMENT = <function CompressorConf.JINJA2_GET_ENVIRONMENT at 0x7f509d83d0d0>
COMPRESS_MINT_DELAY = 30
COMPRESS_MTIME_DELAY = 10
COMPRESS_OFFLINE = True
COMPRESS_OFFLINE_CONTEXT = {'STATIC_URL': '/static/'}
COMPRESS_OFFLINE_MANIFEST = 'manifest.json'
COMPRESS_OFFLINE_TIMEOUT = 31536000
COMPRESS_OUTPUT_DIR = 'CACHE'
COMPRESS_PARSER = 'compressor.parser.AutoSelectParser'
COMPRESS_PRECOMPILERS = "(('text/x-scss', 'sassc -t compressed {infile} {outfile}'), ('text/x-sass', 'sassc -t compressed {infile} {outfile}'))"
COMPRESS_REBUILD_TIMEOUT = 2592000
COMPRESS_ROOT = '/var/lib/mailman3/web/static'
COMPRESS_STORAGE = 'compressor.storage.CompressorFileStorage'
COMPRESS_TEMPLATE_FILTER_CONTEXT = {'STATIC_URL': '/static/'}
COMPRESS_URL = '/static/'
COMPRESS_URL_PLACEHOLDER = '/__compressor_url_placeholder__/'
COMPRESS_VERBOSE = False
COMPRESS_YUGLIFY_BINARY = 'yuglify'
COMPRESS_YUGLIFY_CSS_ARGUMENTS = '--terminal'
COMPRESS_YUGLIFY_JS_ARGUMENTS = '--terminal'
COMPRESS_YUI_BINARY = 'java -jar yuicompressor.jar'
COMPRESS_YUI_CSS_ARGUMENTS = ''
COMPRESS_YUI_JS_ARGUMENTS = ''
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
CSRF_USE_SESSIONS = False
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'mailman3web', 'USER': 'mailman', 'PASSWORD': '********************', 'HOST': 'localhost', 'PORT': '', 'OPTIONS': {'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", 'charset': 'utf8mb4'}, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
DATABASE_ROUTERS = []
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG = False
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'postorius(a)host2.mailhub4u.com'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
EMAILNAME = 'host2.mailhub4u.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Django] '
EMAIL_TIMEOUT = None
EMAIL_USE_LOCALTIME = False
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
FILE_CHARSET = 'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = 420
FILE_UPLOAD_TEMP_DIR = None
FILTER_VHOST = False
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
HAYSTACK_CONNECTIONS = {'default': {'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', 'PATH': 'fulltext_index'}}
HYPERKITTY_ENABLE_GRAVATAR = True
IGNORABLE_404_URLS = []
INSTALLED_APPS = "('hyperkitty', 'postorius', 'django_mailman3', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'django_gravatar', 'compressor', 'haystack', 'django_extensions', 'django_q', 'allauth', 'allauth.account', 'allauth.socialaccount')"
INTERNAL_IPS = []
LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE = 'en-us'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_HTTPONLY = False
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LANGUAGE_COOKIE_SAMESITE = None
LANGUAGE_COOKIE_SECURE = False
LOCALE_PATHS = []
LOGGING = {'version': 1, 'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'handlers': {'mail_admins': {'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler'}, 'file': {'level': 'INFO', 'class': 'logging.handlers.WatchedFileHandler', 'filename': '/var/log/mailman3/web/mailman-web.log', 'formatter': 'verbose'}, 'console': {'class': 'logging.StreamHandler', 'formatter': 'simple'}}, 'loggers': {'django.request': {'handlers': ['mail_admins', 'file'], 'level': 'ERROR', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'ERROR', 'propagate': True}, 'hyperkitty': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'postorius': {'handlers': ['console', 'file'], 'level': 'INFO'}}, 'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(process)d %(name)s %(message)s'}, 'simple': {'format': '%(levelname)s %(message)s'}}}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = 'list_index'
LOGIN_URL = 'account_login'
LOGOUT_REDIRECT_URL = None
LOGOUT_URL = 'account_logout'
MAILMAN_ARCHIVER_FROM = "('127.0.0.1', '209.95.44.128', '::1')"
MAILMAN_ARCHIVER_KEY = '********************'
MAILMAN_REST_API_PASS = '********************'
MAILMAN_REST_API_URL = '********************'
MAILMAN_REST_API_USER = '********************'
MANAGERS = []
MEDIA_ROOT = ''
MEDIA_URL = ''
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS = {40: 'danger'}
MIDDLEWARE = "('django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django_mailman3.middleware.TimezoneMiddleware', 'postorius.middleware.PostoriusMiddleware')"
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
POSTORIUS_TEMPLATE_BASE_URL = 'http://localhost/mailman3/'
PREPEND_WWW = False
Q_CLUSTER = {'retry': 360, 'timeout': 300, 'save_limit': 100, 'orm': 'default'}
ROOT_URLCONF = 'mailman_web.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = False
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_PRELOAD = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = None
SECURE_REDIRECT_EXEMPT = []
SECURE_REFERRER_POLICY = None
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = False
SERVER_EMAIL = 'root(a)host2.mailhub4u.com'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SAMESITE = 'Lax'
SESSION_COOKIE_SECURE = False
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
SETTINGS_MODULE = 'settings'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SITE_ID = 1
SOCIALACCOUNT_PROVIDERS = {}
STATICFILES_DIRS = '()'
STATICFILES_FINDERS = "('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder')"
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/var/lib/mailman3/web/static'
STATIC_URL = '/static/'
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.template.context_processors.csrf', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django_mailman3.context_processors.common', 'hyperkitty.context_processors.common', 'postorius.context_processors.postorius']}}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = True
USE_X_FORWARDED_PORT = False
WSGI_APPLICATION = 'mailman_web.wsgi.application'
X_FRAME_OPTIONS = 'DENY'
YEAR_MONTH_FORMAT = 'F Y'
3 years
Re: Internal Server Error: /mailman3/postorius/lists/.../held_messages - humanize: where to put?
by Stephen J. Turnbull
Flo via Mailman-users writes:
> In /usr/share/mailman3-web/settings.py there is:
>
> INSTALLED_APPS = (
> ...
> 'django.contrib.humanize',
> ...
> )
Right, that's why Python is looking for it. Since it's not being
found, I guess there's a version skew between Mailman and
django.contrib. The first thing to do is to make sure all your
packages are up to date. Check if the django package (or maybe
django-contrib if it's a separate package) is pinned to a particular
old version, and consider unpinning and upgrading it. If they are up
to date, and you're skilled with Debian, you may consider adding more
recent package sources (testing or experimental) and install Django
from those sources.
If that's not appealing I would strongly discourage trying to add the
humanize package from Django upstream. That is a real can of worms.
If you wish to continue using the Debian packages, you will need to
get help from the Debian maintainers. I wouldn't be surprised if they
already are planning to do something about this issue.
The alternative would be to uninstall the Debian package and install
the most recent Mailman packages from PyPI in a Python virtual
environment /opt. This probably requires installing the Debian
python3-venv package. This is not terribly difficult, the
instructions at docs.mailman3.org/en/latest are good, and you're
welcome to ask for help on this list. We recommend this because you
will get better support that way.
> And POSTORIUS_TEMPLATE_BASE_URL = 'http://localhost:8001'
> I think this has also something to do with it.
That has nothing to do with it, they are quite unrelated.
--
GNU Mailman consultant (installation, migration, customization)
Sirius Open Source https://www.siriusopensource.com/
Software systems consulting in Europe, North America, and Japan
1 year, 2 months
Re: Unable to update templates
by Mark Sapiro
On 5/28/25 19:40, Mark wrote:
>
> I have jumped the gun on thinking that the template as a file was
> working. It's not. It's the same story: the initial file template is
> good, but it's for sure getting cached somewhere, and an updated file is
> ignored. The same as when the template was being drawn from the database.
Are you just updating the file
/opt/mailman/mm/var/templates/lists/testlist.example.com/en/list:user:notice:welcome.txt
with nothing in Postorius and either no entry at all in the
mailman.template table with
name = 'list:user:notice:welcome'
context = 'testlist.example.com'
or if there is such an entry, with
uri =
'file:///opt/mailman/mm/var/templates/lists/testlist.example.com/en/list:use…'
If so, editing the file
/opt/mailman/mm/var/templates/lists/testlist.example.com/en/list:user:notice:welcome.txt
should work.
> Restarting mailman3 and mailmanweb didn't help, neither did rebooting
> the server.
>
> Looking at Gunicorn status, I see a failing connection to 127.0.0.1
> which is the error message I was getting when adding a new subscriber -
> with the custom Welcome template in the database (which is why I moved
> it to file).
>
> 127.0.0.1 and locahost are in the ALLOWED_HOSTS and CSRF_TRUSTED_ORIGINS
> of the settings.py file
>
> I'm at a loss with this caching problem. Any other clues happily received.
If as I say above, there is no entry in the mailman.template table for
the name and context or if there is an entry with uri =
'file:///opt/mailman/mm/var/templates/lists/testlist.example.com/en/list:use…',
then gunicorn and mailman-web are not involved at all - mailman core
will get the template from the file directly.
--
Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan
1 year, 5 months