Search results for query "sapiro"
- 5713 messages

[MM3-users] Re: mm3 installation question
by Odhiambo Washington
On Wed, Mar 6, 2024 at 8:53 PM Mark Sapiro <mark(a)msapiro.net> wrote:
> On 3/6/24 1:33 AM, Odhiambo Washington wrote:
> > On Wed, Mar 6, 2024 at 12:13 PM Stephen J. Turnbull <
> > turnbull.stephen.fw(a)u.tsukuba.ac.jp> wrote:
> >
> >> Odhiambo Washington writes:
> >>
> >> > The odd thing is that the HOWTO that he followed never involves the
> >> > manipulation of any urls.py at all - it's not even mentioned at any
> >> > point. So obviously the issue is caused by something else and I
> >> > suspect something within Apache needs to be re-evaluated in the
> >> > guide.
>
>
> The HOWTO installs mailman-web which contains a urls.py.
>
> >>
> >> Note that Apache doesn't know about the "/postorius" and "/hyperkitty"
> >> URI paths. It is quite unclear to me how this works at all with
> >> either the
> >>
> >> path('mailman3/', include('postorius.urls')),
> >> path('archives/', include('hyperkitty.urls')),
> >> path('postorius/', include('postorius.urls')),
> >> path('hyperkitty/', include('hyperkitty.urls')),
> >>
> >> version of urls.py or the reverse order version
> >>
> >> path('postorius/', include('postorius.urls')),
> >> path('hyperkitty/', include('hyperkitty.urls')),
> >> path('mailman3/', include('postorius.urls')),
> >> path('archives/', include('hyperkitty.urls')),
>
>
> This is an issue with Django. I'm not sure of the exact mechanism, but
> consider the first of the above two sets. If you go to the mailman3/ URL
> that gets redirected to the postorius/ URL. I.e. two paths that
> ultimately reference the same thing wind up considering the second path
> as the canonical path and redirecting the first path to the second.
>
> I was not initially aware of this when I added the postorius/ and
> hyperkitty/ paths to mailman_web/urls.py. I did this with the intent of
> making either set of paths work, and I added those paths after the
> mailman3/ and archives/ paths, and this version got released as
> mailman-web 0.0.8. That caused the recommended Apache config to fail
> because now the mailman3/ and archives/ paths were redirected to the
> postorius/ and hyperkitty/ URLs which are not in the recommended Apache
> config.
>
> I have since reordered the paths in mailman_web/urls.py, but that
> version isn't yet released. Thus the issue. See
>
> https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message…
> for some background.
>
>
> > My thinking then is that the documentation at
> >
> https://docs.list.org/en/latest/install/virtualenv.html#apache-configuration
> > needs to be fixed by adding the missing bits,
>
>
> What needs to be done is a mailmab-web 0.0.9 release in PyPI. This will
> fix the issue.
>
Hi Mark,
Thank you for making it much clearer.
Is it possible that an Apache directive like below will fix everything
(albeit discreetly with sysadmins driving blindly)?
ProxyPass "/" "http://127.0.0.1:8000/"
As was suggested by Mr. Turnbull (and previously by you on another thread)?
It will be simpler, but leaves almost everyone (except the Devs) blind to
the fact there exists a urls.py somewhere that determines the mappings?
Maybe a note about it in the documentation will help?
--
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]
1 year, 4 months

[MM3-users] Re: django-allauth failures, but only for some users (independent of browser?)
by Jered Floyd
I'm able to reproduce this and will look into it -- what version of django-allauth are you using? (And what is the expected behavior for that endpoint?)
--Jered
----- On Dec 6, 2023, at 7:57 PM, Mark Sapiro mark(a)msapiro.net wrote:
> On 12/6/23 14:49, Jered Floyd wrote:
>>
>> The difference in behavior was using social login buttons for an existing
>> account vs. creating a new account.
>>
>> This is another damn django-allauth regression, starting in 0.57.0. It seem to
>> be this commit that is to blame:
>> https://github.com/pennersr/django-allauth/commit/be779dfee5a328a3a42edc2c9…
>>
>> In allauth/socialaccount/models.py:lookup(self):285 there is an attempt to look
>> up the social account as one that already exists. If that fails, this commit
>> calls self.account.get_provider() without passing the request object, which
>> leads to the eventual error.
>>
>> I believe this is a django-allauth bug, and have submitted a pull request to fix
>> it here:
>> https://github.com/pennersr/django-allauth/pull/3548
>
> Thanks for all your work on this. It is much appreciated. However, your
> patch doesn't fix my issue with the URL
> https://example.com/accounts/social/connections/ which still produces
> the following:
> ```
> ERROR 2023-12-07 00:05:55,032 169452 django.request Internal Server
> Error: /accounts/social/connections/
> Traceback (most recent call last):
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/core/handlers/exception.py",
> line 55, in inner
> response = get_response(request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/core/handlers/base.py",
> line 220, in _get_response
> response = response.render()
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/response.py",
> line 114, in render
> self.content = self.rendered_content
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/response.py",
> line 92, in rendered_content
> return template.render(context, self._request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/backends/django.py",
> line 61, in render
> return self.template.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 175, in render
> return self._render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 167, in _render
> return self.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 157, in render
> return compiled_parent._render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 167, in _render
> return self.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 157, in render
> return compiled_parent._render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 167, in _render
> return self.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 157, in render
> return compiled_parent._render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 167, in _render
> return self.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 63, in render
> result = block.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 63, in render
> result = block.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/defaulttags.py",
> line 321, in render
> return nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/defaulttags.py",
> line 238, in render
> nodelist.append(node.render_annotated(context))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/defaulttags.py",
> line 539, in render
> values = {key: val.resolve(context) for key, val in
> self.extra_context.items()}
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/defaulttags.py",
> line 539, in <dictcomp>
> values = {key: val.resolve(context) for key, val in
> self.extra_context.items()}
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 715, in resolve
> obj = self.var.resolve(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 847, in resolve
> value = self._resolve_lookup(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 914, in _resolve_lookup
> current = current()
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/models.py",
> line 147, in get_provider_account
> return self.get_provider().wrap_account(self)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/models.py",
> line 141, in get_provider
> provider = self._provider = adapter.get_provider(
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/adapter.py",
> line 204, in get_provider
> app = self.get_app(request, provider=provider)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/adapter.py",
> line 284, in get_app
> apps = self.list_apps(request, provider=provider, client_id=client_id)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/adapter.py",
> line 231, in list_apps
> db_apps = SocialApp.objects.on_site(request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/models.py",
> line 27, in on_site
> site = get_current_site(request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/contrib/sites/shortcuts.py",
> line 16, in get_current_site
> return Site.objects.get_current(request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/contrib/sites/models.py",
> line 63, in get_current
> raise ImproperlyConfigured(
> django.core.exceptions.ImproperlyConfigured: You're using the Django
> "sites framework" without having set the SITE_ID setting. Create a site
> in your database and set the SITE_ID setting or pass a request to
> Site.objects.get_current() to fix this error.
> ```
>
> --
> Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
> San Francisco Bay Area, California better use your sense - B. Dylan
>
> _______________________________________________
> 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/
> Archived at:
> https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message…
>
> This message sent to jered(a)convivian.com
1 year, 7 months

[MM3-users] Re: Confirmation emails to Users has wrong domain name (example.com!)
by Abhilash Raj
On Thu, Sep 30, 2021, at 2:20 AM, Odhiambo Washington wrote:
> On Thu, Sep 30, 2021 at 1:59 AM Abhilash Raj <maxking(a)asynchronous.in>
> wrote:
>
>>
>>
>> > On Sep 29, 2021, at 2:34 PM, Odhiambo Washington <odhiambo(a)gmail.com>
>> wrote:
>> >
>> > On Wed, Sep 29, 2021 at 8:31 PM Mark Sapiro <mark(a)msapiro.net> wrote:
>> >
>> >> On 9/29/21 9:50 AM, Odhiambo Washington wrote:
>> >>> 1. Confirmation emails to Users has wrong domain name (example.com!)
>> >>> <https://docs.mailman3.org/en/latest/faq.html#id1>
>> >>> <
>> >>
>> https://docs.mailman3.org/en/latest/faq.html#confirmation-emails-to-users-h…
>> >>>
>> >>>
>> >>> This happens when your reverse (SSL) proxy isn’t setting up the correct
>> >>> headers when proxying requests. Fix this by setting the right
>> >>> proxy_set_header directives:
>> >> ...
>> >>> How is this supposed to be mitigated in Apache when using WSGI?
>> >>>
>> >>> My config:
>> >>>
>> >>> WSGIDaemonProcess hyperkitty threads=25 python-path=/usr/local/mailman
>> >>> user=mailman group=mailman
>> >>> WSGIPythonHome "/usr/local"
>> >>> WSGIProcessGroup hyperkitty
>> >>
>> >>
>> >> You are using mod_wsgi and not proxying at all, so this is not relevant
>> >> in your case.
>> >>
>> >> Are you actually seeing this issue? If so, it might be related to
>> >>
>> >>
>> https://docs.mailman3.org/en/latest/faq.html#the-domain-name-displayed-in-h…
>> >>
>> >
>> > My issue is related to this, but the documentation referred to is not for
>> > the faint-hearted!
>> > I can't make head or tails of it.
>>
>> Click on “Domain” in Postorius from the top bar, which should take you to
>> the Domains page.
>>
>> For your domain (in the “Mail Host” column), see the corresponding “Web
>> Host” column, it should look something like:
>>
>> lists.mailman3.org (lists.mailman3.org)
>> (Edit)
>> SITE_ID = 1
>>
>
> Mine looks different, slightly. But there is no example.com at all.
>
> [image: Abhilash.png]
>
>
>
>>
>> on a new-ish version of Postorius.
>>
>
> I have the newest versions of everything, having installed only yesterday.
>
>
>>
>> If it doesn’t show the right values and instead shows “example.com” for
>> you, click on the “Edit” link, which will take
>> you to a page that will allow you to edit both the values.
>>
>
> It shows the right values, but with "SITE_ID = 2". In my settings_local.py
> I have SITE_ID = 1.
> I suppose the example.com is the one tied to SITE_ID = 1 and that is what I
> have in my settings_local.py.
That is most likely what is happening.
> Should I edit my settings_local.py?
Yes, please update it to have SITE_ID = 2 to correspond to the site you want and restart.
>
> I am still confused.
>
> --
> Best regards,
> Odhiambo WASHINGTON,
> Nairobi,KE
> +254 7 3200 0004/+254 7 2274 3223
> "Oh, the cruft.", egrep -v '^$|^.*#' :-)
> _______________________________________________
> 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)
3 years, 9 months

[MM3-users] Re: Bulk changes to delivery mode and moderation action
by David Newman
On 1/7/22 12:06 PM, Mark Sapiro wrote:
> On 1/7/22 11:06 AM, David Newman wrote:
>>
>> 1. In Users/Members, moderation action for the newly resubscribed
>> users shows as "None". Is there a method, either in the UI or the
>> command line, to change this to "Default processing" for all users?
>
>
> I assume you don't want to set `Default action to take when a member
> posts to the list` to Default Processing because you want new member
> posts to be held. This is a good practice. To set all members to default
> processing in mailman shell
..
OK, thanks
>> 2. Although Delivery Mode shows as "Regular" for all users in
>> Users/Members list, clicking on a member's name shows all options such
>> as delivery status, delivery mode, etc., as undefined.
>
>
> They show as undefined, but if you look at your own settings by
> selecting `Mailman settings` from the dropdown under your username at
> the upper right in Postorius, you will see you have Global Mailman
> preferences, Address-based preferences and List-based preferences. If a
> list based preference is unset for a list, it falls back to the address
> based preference for the address and if that's unset, to the global
> preference.
>
> When you as an admin look at a user, you only see the user's list based
> preferences.
Thanks. This makes sense, but something's wrong with this particular list.
I was able to change preferences using the shell commands you kindly
provided. All list member now have regular delivery and default moderation.
However, there's no evidence test messages to the list are going out.
(Nondelivery was the reason I was mucking around in the admin panel in
the first place.)
The Postfix log shows delivery to the list address.
MM3's smtp.log shows the usual handshake.
However, I do not then see messages going out to subscribers in the
Postfix log, and as one of those subscribers I do not receive a copy
even though my preferences are set to receive my own posts.
The admin panel shows 0 messages held for moderation.
Another mailing list in the same domain on the same server delivers mail
to all subscribers OK.
This is surely config problem on my end, but which log(s) and/or admin
panel setting(s) to check?
Thanks again.
dn
>
>> Similar question: How to set subscriber options for all members in one
>> go?
>
>
> Per the above, you only need to set the user's preferences if they don't
> have address based preferences and the preference differs from the
> global (default) preferences.
>
> However, if you want to set the member's list preferences, you could add
> to the beginning of the above:
> ```
> >>> from mailman.interfaces.member import DeliveryMode, DeliveryStatus
> >>> english = getUtility(ILanguageManager).get('en')
> ```
> and to the `for` loop in the above:
> ```
> ... mbr.preferences.acknowledge_posts = False
> ... mbr.preferences.delivery_mode = DeliveryMode.regular
> ... mbr.preferences.delivery_status = DeliveryStatus.enabled
> ... mbr.preferences.hide_address = False
> ... mbr.preferences.preferred_language = english
> ... mbr.preferences.receive_list_copy = False
> ... mbr.preferences.receive_own_postings = True
> ```
> Or whatever you think these settings should be.
>
>> 3. As a subscriber to this list, I received email notification that
>> I'd been unsubscribed. Where is the control for enabling/disabling
>> subscription notifications?
>
>
> Settings -> Automatic Responses
>
>
>> Settings/Member Policy/Un-subscription Policy is set to Confirm, but I
>> don't think that's relevant here since I unsubscribed users as the
>> Django superuser.
>
>
> Correct.
>
3 years, 6 months

[MM3-users] SOLVED (was: compress failed...)
by Guillermo Hernandez (Oldno7)
El 30/10/22 a las 12:22, Guillermo Hernandez (Oldno7) via Mailman-users
escribió:
>
> El 28/10/22 a las 9:18, Guillermo Hernandez (Oldno7) via Mailman-users
> escribió:
>>
>> El 27/10/22 a las 21:39, Mark Sapiro escribió:
>>>> After that the compress part showed errors... but the postorius web
>>>> maintenance was working well except for the CSRF error
>>>> verification. I will trace the compress errors and will try to find
>>>> the problem later.
>>>
>>>
>>> Do you have `COMPRESS_ENABLED = True` in your settings? If that's
>>> not the issue, it may be in the settings for COMPRESS_PRECOMPILERS
>>
>> While I'm tracing the problem out, this is the configuration I had
>> working and the error it shows after upgrade:
>>
>> <------- snip of settings.py>
>>
>> #
>> COMPRESS_PRECOMPILERS = (
>> ('text/less', 'lessc {infile} {outfile}'),
>> ('text/x-scss', 'sassc -t compressed {infile} {outfile}'),
>> ('text/x-sass', 'sassc -t compressed {infile} {outfile}'),
>> )
>> # On a production setup, setting COMPRESS_OFFLINE to True will bring a
>> # significant performance improvement, as CSS files will not need to be
>> # recompiled on each requests. It means running an additional "compress"
>> # management command after each code upgrade.
>> #
>> http://django-compressor.readthedocs.io/en/latest/usage/#offline-compression
>> #### activo compresion 18/12/20
>> COMPRESS_OFFLINE = True
>> ###COMPRESS_OFFLINE = False
>> <---------- end snip>
>>
>> And below is the error it shows:
>>
>> /usr/local/mailman3 # su -m mailman3 -c "python3 manage.py compress"
>> Traceback (most recent call last):
>> File "/usr/local/mailman3/manage.py", line 10, in <module>
>> execute_from_command_line(sys.argv)
>> File
>> "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py",
>> line 446, in execute_from_command_line
>> utility.execute()
>> File
>> "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py",
>> line 440, in execute
>> self.fetch_command(subcommand).run_from_argv(self.argv)
>> File
>> "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py",
>> line 279, in fetch_command
>> klass = load_command_class(app_name, subcommand)
>> File
>> "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py",
>> line 49, in load_command_class
>> return module.Command()
>> File
>> "/usr/local/lib/python3.9/site-packages/django/core/management/base.py",
>> line 274, in __init__
>> raise TypeError("requires_system_checks must be a list or tuple.")
>> TypeError: requires_system_checks must be a list or tuple.
>>
>>
> After searching around, I've got a hint of what can be happening. It
> seems a variable has changed in Django 4.1 its nature from boolean to
> a tuple
>
> https://github.com/painless-software/django-probes/issues/24
>
> I've upgraded another server with mailman3 lists, with the same config
> listed above, and it shows the same error in the "compress" part. I'm
> not sure where to set the requires_system_checks variable as in one of
> the comments of the link, and as it doesn't seems to break anything
> more, I will wait for more info before trying to avoid it. I'm sure it
> will have some repercusion on the performance, but I'll have to live
> with it.
>
>
> Thanks again for your supporting advices.
I did a
pip install --upgrade --force-reinstall Django==4.0.8
downgrading Django from 4.1 and now a
su -m mailman3 -c "python3 manage.py compress"
worked without pain.
>
>>
>>
>>
>>
>>
--
___________________________________________
Mailman's content filtering has removed the
following MIME parts from this message.
Content-Type: image/png
Name: firma-GHP-emails.png
Replaced multipart/alternative part with first alternative.
2 years, 8 months

[MM3-users] Re: Clearing webserver cache - Nginx
by Odhiambo Washington
On Tue, Aug 6, 2024 at 7:18 PM Mark Sapiro <mark(a)msapiro.net> wrote:
> On 8/6/24 00:24, Odhiambo Washington via Mailman-users wrote:
> >
> > In any case, here is my virtualhost config:
>
> It looks OK.
>
> I suggest you run
>
> mailman-web collectstatic --clear
> mailman-web compress
>
Done.
However, I still see the errors in Nginx logs:
```
root@eu:~# tail -f /var/log/nginx/mm3-lists_error.log
2024/08/06 18:52:54 [error] 37221#37221: *53355 open()
"/opt/mailman/mm/static/CACHE/css/output.158acc288604.css" failed (2: No
such file or directory), client: 108.162.238.164, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.158acc288604.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/list/kictanet@lists.kictanet.or.k…
"
2024/08/06 19:11:24 [error] 37221#37221: *54872 open()
"/opt/mailman/mm/static/CACHE/css/output.6dab123e4897.css" failed (2: No
such file or directory), client: 162.158.170.169, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.6dab123e4897.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/list/kictanet@lists.kictanet.or.k…
"
2024/08/06 19:11:24 [error] 37224#37224: *54875 open()
"/opt/mailman/mm/static/CACHE/css/output.158acc288604.css" failed (2: No
such file or directory), client: 162.158.171.16, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.158acc288604.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/list/kictanet@lists.kictanet.or.k…
"
2024/08/06 19:12:27 [error] 37228#37228: *54974 open()
"/opt/mailman/mm/static/CACHE/css/output.6dab123e4897.css" failed (2: No
such file or directory), client: 162.158.106.81, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.6dab123e4897.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/list/kictanet@lists.kictanet.or.k…
"
2024/08/06 19:12:27 [error] 37228#37228: *54975 open()
"/opt/mailman/mm/static/CACHE/css/output.158acc288604.css" failed (2: No
such file or directory), client: 162.158.106.14, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.158acc288604.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/list/kictanet@lists.kictanet.or.k…
"
2024/08/06 19:27:27 [error] 37228#37228: *56500 open()
"/opt/mailman/mm/static/CACHE/css/output.6dab123e4897.css" failed (2: No
such file or directory), client: 172.70.188.20, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.6dab123e4897.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/"
2024/08/06 19:27:27 [error] 37228#37228: *56501 open()
"/opt/mailman/mm/static/CACHE/css/output.158acc288604.css" failed (2: No
such file or directory), client: 172.70.188.84, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.158acc288604.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/"
2024/08/06 19:29:18 [error] 37221#37221: *56722 open()
"/opt/mailman/mm/static/CACHE/css/output.6dab123e4897.css" failed (2: No
such file or directory), client: 172.68.1.156, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.6dab123e4897.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/"
2024/08/06 19:29:18 [error] 37224#37224: *56724 open()
"/opt/mailman/mm/static/CACHE/css/output.158acc288604.css" failed (2: No
such file or directory), client: 172.68.3.81, server:
mm3-lists.kictanet.or.ke, request: "GET
/static/CACHE/css/output.158acc288604.css HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/"
2024/08/06 19:29:19 [error] 37221#37221: *56728 open()
"/opt/mailman/mm/static/CACHE/js/output.3aaa7705d68a.js" failed (2: No such
file or directory), client: 172.68.2.67, server: mm3-lists.kictanet.or.ke,
request: "GET /static/CACHE/js/output.3aaa7705d68a.js HTTP/2.0", host: "
mm3-lists.kictanet.or.ke", referrer: "
https://mm3-lists.kictanet.or.ke/archives/"
```
And the archives page is still br0ken,
--
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]
11 months

[MM3-users] Re: moving lists to another server
by Odhiambo Washington
On Sat, Nov 18, 2023 at 1:42 AM Mark Sapiro <mark(a)msapiro.net> wrote:
> On 11/17/23 00:51, Odhiambo Washington wrote:
>
> > I am scratching my head bald trying to figure out how to bring in this
> > other MM3 site and list into my existing server, especially with regard
> to
> > the DB backend.
> >
> > The list - let's call it users(a)domainX.name was using MySQL backend and
> > had a separate DB for Mailman core and Mailman web.
> > I believe combining these into one isn't a problem. But getting to merge
> > this DB into my current one is what I am not sure about.
>
> This is https://gitlab.com/mailman/postorius/-/issues/13 which is a real
> need, but doesn't yet exist.
>
> I think the easiest thing for the archives is to forget the Mailman web
> DB and just export the archive as a mbox from the other site (if it's
> large, exporting the entire archive will time out so you have to do it
> in pieces). Then you can use hyperkitty_import to import it.
>
What is the command to export the archive as a mbox from the DB?
I can't figure out which option it is by looking at 'mailman-web -h'.
> For the list data, it's probably easiest to just create the list
> manually and go through the settings in Postorius and make them match,
I want to go with the above.
although you could dump the mailinglist table entry where list_id =
> 'users(a)domainx.name' and load that, but you'd need to edit the id field
> in the dump to match the id on your server.
Not going with that.
> That leaves the members.
Given that I have a dump of the two DBs (mailman and mailman-web) I just
created one DB and imported them.
I have been able to dump the members into a text file. Now importing is not
a problem.
BTW, how will ' mailman addmembers' treat a file containing:
```
Firstname Lastname <email@address>
Onlyname <email2@address>
```
?
> Doing this with a DB dump/load would be very complex because while the
> member table has a list_id field which is the id of the list's entry in
> the mailinglist table and can be used to select the relevant members,
> these records also link to entries in the address, preferences and user
> tables and matching them would be an issue.
>
I am also not taking that path.
I think a custom script would be required. If I were doing this, I would
> make a separate database on my server with a copy of the data from the
> other server and then try to make a script that would extract data from
> the other database and add it to mine.
Alternatively you could just dump the members from the other servers
> with the `mailman members` command perhaps separately for regular and
> the different digest types and then add them with the `mailman
> addmembers` command. This wouldn't get all their attributes, but it
> could work.
>
I have opted for the simple way to do this:
1. Create the site in Django Admin and create/configure the list in
Postorius
2. Add the members from the file dump, with delivery set to regular.
3. Send the members an email informing them that they need to set their
delivery preferences.
I am stuck on the issue of exporting the archives to mbox file as already
stated above.
--
Best regards,
Odhiambo WASHINGTON,
Nairobi,KE
+254 7 3200 0004/+254 7 2274 3223
"Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-)
[How to ask smart questions:
http://www.catb.org/~esr/faqs/smart-questions.html]
1 year, 7 months

[MM3-users] Re: django-allauth failures, but only for some users (independent of browser?)
by Jered Floyd
This was a related issue. See https://github.com/pennersr/django-allauth/pull/3554
--Jered
--- a/allauth/socialaccount/models.py
+++ b/allauth/socialaccount/models.py
@@ -144,7 +144,7 @@ class SocialAccount(models.Model):
return provider
def get_provider_account(self):
- return self.get_provider().wrap_account(self)
+ return self.get_provider(context.request).wrap_account(self)
class SocialToken(models.Model):
----- On Dec 6, 2023, at 7:57 PM, Mark Sapiro mark(a)msapiro.net wrote:
> On 12/6/23 14:49, Jered Floyd wrote:
>>
>> The difference in behavior was using social login buttons for an existing
>> account vs. creating a new account.
>>
>> This is another damn django-allauth regression, starting in 0.57.0. It seem to
>> be this commit that is to blame:
>> https://github.com/pennersr/django-allauth/commit/be779dfee5a328a3a42edc2c9…
>>
>> In allauth/socialaccount/models.py:lookup(self):285 there is an attempt to look
>> up the social account as one that already exists. If that fails, this commit
>> calls self.account.get_provider() without passing the request object, which
>> leads to the eventual error.
>>
>> I believe this is a django-allauth bug, and have submitted a pull request to fix
>> it here:
>> https://github.com/pennersr/django-allauth/pull/3548
>
> Thanks for all your work on this. It is much appreciated. However, your
> patch doesn't fix my issue with the URL
> https://example.com/accounts/social/connections/ which still produces
> the following:
> ```
> ERROR 2023-12-07 00:05:55,032 169452 django.request Internal Server
> Error: /accounts/social/connections/
> Traceback (most recent call last):
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/core/handlers/exception.py",
> line 55, in inner
> response = get_response(request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/core/handlers/base.py",
> line 220, in _get_response
> response = response.render()
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/response.py",
> line 114, in render
> self.content = self.rendered_content
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/response.py",
> line 92, in rendered_content
> return template.render(context, self._request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/backends/django.py",
> line 61, in render
> return self.template.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 175, in render
> return self._render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 167, in _render
> return self.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 157, in render
> return compiled_parent._render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 167, in _render
> return self.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 157, in render
> return compiled_parent._render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 167, in _render
> return self.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 157, in render
> return compiled_parent._render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 167, in _render
> return self.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 63, in render
> result = block.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/loader_tags.py",
> line 63, in render
> result = block.nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/defaulttags.py",
> line 321, in render
> return nodelist.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in render
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 1005, in <listcomp>
> return SafeString("".join([node.render_annotated(context) for node
> in self]))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/defaulttags.py",
> line 238, in render
> nodelist.append(node.render_annotated(context))
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 966, in render_annotated
> return self.render(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/defaulttags.py",
> line 539, in render
> values = {key: val.resolve(context) for key, val in
> self.extra_context.items()}
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/defaulttags.py",
> line 539, in <dictcomp>
> values = {key: val.resolve(context) for key, val in
> self.extra_context.items()}
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 715, in resolve
> obj = self.var.resolve(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 847, in resolve
> value = self._resolve_lookup(context)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/template/base.py",
> line 914, in _resolve_lookup
> current = current()
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/models.py",
> line 147, in get_provider_account
> return self.get_provider().wrap_account(self)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/models.py",
> line 141, in get_provider
> provider = self._provider = adapter.get_provider(
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/adapter.py",
> line 204, in get_provider
> app = self.get_app(request, provider=provider)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/adapter.py",
> line 284, in get_app
> apps = self.list_apps(request, provider=provider, client_id=client_id)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/adapter.py",
> line 231, in list_apps
> db_apps = SocialApp.objects.on_site(request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/allauth/socialaccount/models.py",
> line 27, in on_site
> site = get_current_site(request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/contrib/sites/shortcuts.py",
> line 16, in get_current_site
> return Site.objects.get_current(request)
> File
> "/opt/mailman/mm/venv/lib/python3.9/site-packages/django/contrib/sites/models.py",
> line 63, in get_current
> raise ImproperlyConfigured(
> django.core.exceptions.ImproperlyConfigured: You're using the Django
> "sites framework" without having set the SITE_ID setting. Create a site
> in your database and set the SITE_ID setting or pass a request to
> Site.objects.get_current() to fix this error.
> ```
>
> --
> Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
> San Francisco Bay Area, California better use your sense - B. Dylan
>
> _______________________________________________
> 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/
> Archived at:
> https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message…
>
> This message sent to jered(a)convivian.com
1 year, 7 months

[MM3-users] GNU Mailman condemns reinstatement of RMS
by Abhilash Raj
To the Mailman community,
The GNU Mailman Steering Committee condemns the reinstatement of
Richard M. Stallman (RMS) to the Board of the Free Software Foundation
(FSF), and has taken the following actions:
1. On behalf of the GNU Mailman project, signed the letter on
GitHub[1] calling for the removal of the entire FSF Board, as well
as RMS himself.
2. Started exploring ways to move our financial assets, for decades
managed by the FSF, to new management. The management fees are
small, but this is an important symbolic protest.
3. Started exploring how to leave the GNU Project. On the one hand,
if we leave but GNU wants to maintain a "GNU Mailman" project, we
cannot stop them, confusing users. On the other hand, RMS is
leader of the GNU Project, and has intervened in Mailman affairs
on many occasions. We should forestall this in the future.
We wish to explain our actions to the community.
Although free exchange of software among users is a practice that goes
back to days of the earliest general purpose computers, RMS was the
first to propose a complete free software distribution, and is the
acknowledged founder of the Free Software movement. Even leaders of
the Berkeley Software Distribution (BSD) acknowledge this. We all owe
him a debt for this.
Nevertheless, the movement has matured and thrived, spawning the
competitive open source movement, with whose philosophy Mailman is
more closely aligned. While we acknowledge our debt to RMS, we don't
need him any longer. And unfortunately, he has become both a symbol
and a source of the toxicity in tech communities. The FSF Board did
the right thing by accepting RMS's resignation. They did the wrong
thing by reinstating him.
RMS has a long history of abusive behavior and toxic political
positions. A small part of it is described in the open letter on
GitHub[1] and its references[2], and several members of the Steering
Committee have observed it directly. All of us have heard stories
directly from those who were abused or observed it directly. His
political positions are public, for example his support of pedophiles.
He claims that he in no way supports abusive relationships with
children, yet refuses to acknowledge that children are generally in
no position to provide consent, an evasive and highly toxic position.
There is no question: RMS is toxic.
We came for mailing list management, but we stayed for the community.
We have a right to protect our community by dissociating it from toxic
influences.
We do not want our project associated with such a person, nor to
provide economic resources to organizations that promote him to
leadership positions. We are taking these actions to protect our
community, both the narrow community of Mailman developers and users,
and the broader open source community, from his toxic behavior and
from the reputational damage that will come from helping to enable
him.
While we have no information suggesting that other members of the FSF
Board are similarly toxic as individuals, as a group they enabled RMS
for decades, and now have taken an explicit step in enabling him
again. If they want to regain their position of respect and
acceptance in our community, they must acknowledge their error, and we
don't see -- given their reinstatement of RMS himself -- how they can
do so convincingly while maintaining their positions on the Board.
They must resign, and a new Board composed, to demonstrate their
sincerity. What they do is up to them, of course, but if they do not
take radical steps, we will continue to consider association with the
FSF a threat to our community.
For the Mailman community,
Abhilash Raj (project leader)
Mark Sapiro
Stephen J. Turnbull
Aurélien Bompard
Terri Oda
Barry Warsaw
John Viega (founder)
[1] Text and signatures: https://rms-open-letter.github.io
[2] Appendix to the letter: https://rms-open-letter.github.io/appendix
Related statements: https://rms-open-letter.github.io/statements
4 years, 3 months

[MM3-users] Custom templates (was: Re: Re: nginx configuration on a multitasking server)
by David Newman
On 12/23/21 10:39 AM, Mark Sapiro wrote:
> On 12/23/21 9:57 AM, David Newman wrote:
>>
>> The task-pending message that MM3 sends to list owners and moderators
>> just says generically to check the dashboard, without providing a URL.
>>
>> Can that be modified to provide an explicit URL, something like this?
>>
>> https://lists.example.com/mailman3/lists/listname
>
>
> Yes, That particular message is built from the list:admin:action:post
> template. You may wish to make custom versions of that and other
> templates. The templates and their default values are at
> https://gitlab.com/mailman/mailman/-/tree/master/src/mailman/templates/en
>
> You can make custom versions of templates in two ways. You can create if
> necessary a /opt/mailman/mm/var/templates directory (it probably already
> exists). Within that directory, sitewide English templates are put in
> the site/en/ directory, domain specific English templates are put in the
> domains/<domain_name>/en/ directory and list specific English templates
> are put in the lists/<list_id>/en/ directory.
>
> For templates like this, you probably want sitewide ones. E.g.,
> site/en/list:admin:action:post.txt
> ---------------------------------------------------------------
> As list administrator, your authorization is requested for the
> following mailing list posting:
>
> List: $listname
> From: $sender_email
> Subject: $subject
>
> The message is being held because:
>
> $reasons
>
> At your convenience, visit
> https://lists.example.com/mailman3/lists/$list_id/held_messages
> to approve or deny the request.
> ---------------------------------------------------------------
>
> The other way to create custom templates is via Postotrius, but
> Postorius only creates list and domain specific templates. Also, if you
> create a template in Postorius, it overrides any in
> /opt/mailman/mm/var/templates/ until you delete it in Postorius.
>
> Info about templates and what substitution variables can be used is at
> https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/rest/docs/…
Following up on this thread from a few weeks ago, a custom subscribe
template I defined is not getting sent out.
I created a pending subscription request on a test list. Here is the
text I'm using in a file called 'list:admin:action:subscribe.txt' (minus
the rows of hypens):
----------
As list administrator, your authorization is required for a mailing list
subscription request approval:
For: $member
List: $listname
At your convenience, visit:
https://${domain}/mailman/admindb/lists/${short_listname}.${domain}/
to approve or deny the request.
----------
Instead the message that goes out at midnight daily reads like this:
----------
The test(a)lists.domain.tld list has 1 moderation requests waiting.
Held Subscriptions:
User: letmein(a)domain.tld
Please attend to this at your earliest convenience.
----------
On successive nights I have placed copies of the
'list:admin:action:subscribe.txt' file above in these locations:
mm/var/templates/lists/test.lists.domain.tld/en
/opt/mailman/mm/var/templates/site/en
and then in Postorius, with the same contents as above. The file
versions are owned by the mailman user, and have 0644 permissions. Not
sure this is necessary but I've restarted the mailman3 and mailmanweb
services each time after a change.
There is no sign of trouble in the MM3 or web logs. The only thing I see
is in the Postfix log, where the shorter and less helpful message goes
out each night. I don't see anything in the template docs about this.
Questions:
1. What to do to get the custom message working?
2. Is there a way to trigger a subscribe reminder for one list only?
Asking because there are other lists on this server with other requests
pending, and I don't want to bother other moderators with multiple
reminders per day. Not a big deal, but it would be nice to test this
with one list rather than waiting up to 24 hours after each change.
Thank you!
dn
3 years, 5 months