
Re: problems installing mailman3 under gentoo and upgrading mailman2 to mailman3
by Guillermo Hernandez (Oldno7)
On 13/3/21 9:44, John Covici wrote:
> On Sat, 13 Mar 2021 03:25:41 -0500,
> Guillermo Hernandez (Oldno7) via Mailman-users wrote:
>> On 13/3/21 8:53, John Covici wrote:
>>>> We recommend installing Mailman and the web components in a virtualenv,
>>>> but it is not a requirement. We also suggest that postgresql is a better
>>>> choice than MariaDB.
>>>>
>>> I sort of am installing from source, gentoo installs from source. No
>>> one on the gentoo users mailing list seems to be able to help me,
>>> except to tell me to use a different mailing list mechanism called
>>> mlmmj.
>>>
>> From the perspective of someone who was in the same place (but
>> installing in a FreeBSD S.O.), I would recommend you to follow
>> the "virtualenv" guide but without executing the "env"
>> commands. It will produce a system wide mailman3 installation but
>> it will work (as it is for me since a few moths ago)
>>
>> I writed down a step by step path of my installation and it could
>> be of your interest (maybe you have to locate and install some
>> packages by different name, but I think it will be not much
>> difference). It could provide you a overall view of all the
>> processes implied.
>>
>> I'ts here: https://forums.FreeBSD.org/threads/mailman-3.61050/post-488128
> Thanks, by the env commands you mean the creation and activation
> commands?
I mean the part when you activate the virtualenv (Virtualenv setup &
activate virtualenv) in
https://docs.mailman3.org/en/latest/install/virtualenv.html#virtualenv-inst…
The servers in which I was migrating from mailman2 were jailed servers
and I didn't want to add more virtualization layers (and I read some
articles documenting problems using virtualenv in FreeBSD) so, I
prefered to install all of it system wide as it was before with mailman2.
> I will certainly look at your thread.
>
4 years, 3 months

Re: UnpicklingError on mailman lists command
by Bryan Loniewski
$ /opt/mailman/mm/bin/mailman version
GNU Mailman 3.3.2 (Tom Sawyer)
So, I'm running > 3.2. Any other advice on debugging the truncated data?
________________________
Bryan Loniewski
Rutgers University
OIT:EAS:Messaging and Collaboration Services
System Administrator
________________________________________
From: Mark Sapiro <mark(a)msapiro.net>
Sent: Monday, August 2, 2021 10:06 PM
To: mailman-users(a)mailman3.org
Subject: [MM3-users] Re: UnpicklingError on mailman lists command
On 8/2/21 4:15 PM, Bryan Loniewski wrote:
> Hi all --
>
> $ /opt/mailman/mm/bin/mailman lists
> Traceback (most recent call last):
...
> File "/opt/mailman/venv/lib/python3.6/site-packages/mailman/commands/cli_lists.py", line 78, in lists
> for mlist in list_manager.mailing_lists:
> File "/opt/mailman/venv/lib/python3.6/site-packages/mailman/model/listmanager.py", line 100, in mailing_lists
> MailingList._list_id).all()
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3246, in all
> return list(self)
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 101, in instances
> cursor.close()
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 69, in __exit__
> exc_value, with_traceback=exc_tb,
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
> raise exception
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 81, in instances
> rows = [proc(row) for row in fetch]
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 81, in <listcomp>
> rows = [proc(row) for row in fetch]
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 589, in _instance
> populators,
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/orm/loading.py", line 726, in _populate_full
> dict_[key] = getter(row)
> File "/opt/mailman/venv/lib/python3.6/site-packages/sqlalchemy/sql/sqltypes.py", line 1708, in process
> return loads(value)
> _pickle.UnpicklingError: pickle data was truncated
This is probably https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.co… which
was fixed in Mailman 3.2.0 by
https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.co….
What version are you running? If your version is 3.2.0 or greater, it
could be one of the other issues with MySQL/MariaDB truncating data.
--
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://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.mai…
3 years, 11 months

Re: error changed after restart
by Abhilash Raj
On Sun, Feb 7, 2021, at 1:07 AM, Guillermo Hernandez (Oldno7) via Mailman-users wrote:
> On 6/2/21 21:19, Abhilash Raj wrote:
> >
> >
> > On Sat, Feb 6, 2021 at 19:44, Guillermo Hernandez (Oldno7) via
> > Mailman-users <mailman-users(a)mailman3.org> wrote:
> >> On 6/2/21 18:08, Abhilash Raj wrote:
> >>
> >> On Sat, Feb 6, 2021, at 3:04 AM, Guillermo Hernandez (Oldno7) via
> >> Mailman-users wrote:
> >>
> >> I restarted de server and the error changed. Now the log
> >> shows "KeyError: 'subscription_mode'":
> >>
> >> Did you also restart Mailman Core after the upgrade?
> >>
> >> Yes, indeed: I stopped mailman core and all the processes related.
> >> Did the upgrades. Started all again. Find the errors in the web user
> >> interface. Stopped all again. Looked for errors in the log. Restarted
> >> the complete server. Found the second error that this second mail is
> >> about to. It happens when, in the main page that shows all the lists
> >> you click to see one of them. It seems to me that it has been
> >> database structure changes in django that the upgrade is not aware...
> >> but it's a very long shot from my side.
> > `subscription_mode` was added in Mailman Core 3.3.2 and it is actually
> > a derived atrribute and not stored in Database. Mailman's API should be
> > returning this attribute for each Member, but for some reason it seems
> > to me like it isn't doing that even though do have Mailman 3.3.3 running
> > like you said.
> > If you have Curl installed, can you send me the output of:
> > $ curl -u <user>:<pass> http://localhost:8001/3.1/members?count=5&page=1
>
> This is the output you asked for (it's the same you can see when you try
> to interact with one list):
>
> /usr/local/mailman3 # curl -u XXXXXX:XXXXXX
> http://localhost:8001/3.1/members?count=5&page=1
> /usr/local/mailman3 # <html>
> <head>
> <title>Internal Server Error</title>
> </head>
> <body>
> <h1><p>Internal Server Error</p></h1>
>
> </body>
> </html>
>
> No log entry has been produced...
This is weird, if you have working Core, then there should be *some* json returned
from the above command. Do you have the Gunicorn running? What is the
output of `ps -ef | grep mailman`?
Are you able to run `mailman members` command to list the members of a list?
Also, how did you actually install Mailman?
Abhilash.
> TIA.
>
>
>
>
> > It should ideally return an output that looks something like shown
> > here[1]. You
> > can put the username/password of Core's API server in the above command.
> > [1]:
> > https://docs.mailman3.org/projects/mailman/en/latest/src/mailman/rest/docs/…
> >
> > Abhilash
> >> I'm using sqlite as django database and mysql for mailman.
> >>
> >> ERROR 2021-02-06 11:47:49,015 26798 django.request Internal
> >> Server Error:
> >> /mailman3/mailman3/lists/name_and_domain.of.the.list
> >> Traceback (most recent call last): File
> >> "/usr/local/lib/python3.7/site-packages/mailmanclient/restbase/base.py",
> >> line 119, in __getattr__ return self._get(name) File
> >> "/usr/local/lib/python3.7/site-packages/mailmanclient/restbase/base.py",
> >> line 86, in _get raise KeyError(key) KeyError:
> >> 'subscription_mode' During handling of the above exception,
> >> another exception occurred: Traceback (most recent call
> >> last): File
> >> "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py",
> >> line 34, in inner response = get_response(request) File
> >> "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py",
> >> line 115, in _get_response response =
> >> self.process_exception_by_middleware(e, request) File
> >> "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py",
> >> line 113, in _get_response response =
> >> wrapped_callback(request, *callback_args, **callback_kwargs)
> >> File
> >> "/usr/local/lib/python3.7/site-packages/django/views/generic/base.py",
> >> line 71, in view return self.dispatch(request, *args,
> >> **kwargs) File
> >> "/usr/local/lib/python3.7/site-packages/postorius/views/generic.py",
> >> line 74, in dispatch return super(MailingListView,
> >> self).dispatch(request, *args, **kwargs) File
> >> "/usr/local/lib/python3.7/site-packages/django/views/generic/base.py",
> >> line 97, in dispatch return handler(request, *args,
> >> **kwargs) File
> >> "/usr/local/lib/python3.7/site-packages/postorius/views/list.py",
> >> line 295, in get member.subscription_mode == File
> >> "/usr/local/lib/python3.7/site-packages/mailmanclient/restbase/base.py",
> >> line 124, in __getattr__ self.__class__.__name__, name))
> >> AttributeError: 'Member' object has no attribute
> >> 'subscription_mode' *********************** some info about
> >> the installed versions via pip list: pip list | grep django
> >> django-allauth 0.44.0
> >> django-appconf 1.0.4
> >> django-compressor 2.4
> >> django-extensions 3.1.0
> >> django-gravatar2 1.4.4
> >> django-haystack 3.0
> >> django-mailman3 1.3.5
> >> django-picklefield 3.0.1
> >> django-q 1.3.4
> >> djangorestframework 3.12.2 pip list | grep mailman
> >> django-mailman3 1.3.5
> >> mailman 3.3.3
> >> mailman-hyperkitty 1.1.0
> >> mailmanclient 3.3.2 pip list | grep postorius
> >> postorius 1.3.4 On 6/2/21 11:12,
> >> Guillermo Hernandez (Oldno7) via Mailman-users wrote:
> >>
> >> I've just upgrade mailman 3 installation following Mr.
> >> Sapiro advice: did a pip install --upgrade
> >> django-mailman3 hyperkitty mailman mailmanclient
> >> mailman-hyperkitty postorius I did a "python3 manage.py
> >> migrate" after, too. And all seemed to run well. All the
> >> lists showed in postorius via web, but when I try to
> >> accesss into one of them the browser shows an error. In
> >> the log you can see: *-*-*-*-*-*-* Traceback (most recent
> >> call last): File
> >> "/usr/local/lib/python3.7/site-packages/mailmanclient/restbase/base.py",
> >> line 119, in __getattr__ return self._get(name)
> >> File
> >> "/usr/local/lib/python3.7/site-packages/mailmanclient/restbase/base.py",
> >> line 86, in _get raise KeyError(key) KeyError:
> >> 'get_requests_count' .. (And after all the traceback
> >> lines) AttributeError: 'MailingList' object has no
> >> attribute 'get_requests_count' *-*-*-*-*-*-*-* The lists
> >> seem to be distributing messeages well.. but I cannot
> >> acces via web administration (django/postorius) Can
> >> anyone point me in the right direction to solve this,
> >> please? _______________________________________________
> >> Mailman-users mailing list -- mailman-users(a)mailman3.org
> >> <mailto:mailman-users@mailman3.org> To unsubscribe send
> >> an email to mailman-users-leave(a)mailman3.org
> >> <mailto:mailman-users-leave@mailman3.org>
> >> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> >> <https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3org/>
> >>
> >>
> >> _______________________________________________ Mailman-users
> >> mailing list -- mailman-users(a)mailman3.org
> >> <mailto:mailman-users@mailman3.org> To unsubscribe send an
> >> email to mailman-users-leave(a)mailman3.org
> >> <mailto:mailman-users-leave@mailman3.org>
> >> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> >> <https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3org/>
> >>
> >>
> >> _______________________________________________ Mailman-users mailing
> >> list -- mailman-users(a)mailman3.org
> >> <mailto:mailman-users@mailman3.org> To unsubscribe send an email to
> >> mailman-users-leave(a)mailman3.org
> >> <mailto:mailman-users-leave@mailman3.org>
> >> https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3.org/
> >> <https://lists.mailman3.org/mailman3/lists/mailman-users.mailman3org/>
>
>
> _______________________________________________
> 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)
4 years, 4 months

Re: [Django] ERROR (EXTERNAL IP): Service Unavailable
by dancab@caltech.edu
Mark,
Is it only this list that has an issue?
Yes, this is the only list that is having the issue.
Can you visit other pages for this list?
Yes, I'm able to view the members list, list settings, templates, etc.
I've restarted the service and tried to access the held messages for the list once again. Here's what is in the mailman log.
ERROR 2021-02-25 17:28:14,197 393 postorius Mailman REST API not available
Traceback (most recent call last):
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen
chunked=chunked,
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse
response.begin()
File "/usr/lib64/python3.6/http/client.py", line 307, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mailmanve/lib64/python3.6/site-packages/requests/adapters.py", line 449, in send
timeout=timeout
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 756, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/util/retry.py", line 531, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/packages/six.py", line 734, in reraise
raise value.with_traceback(tb)
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 706, in urlopen
chunked=chunked,
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 445, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/opt/mailmanve/lib64/python3.6/site-packages/urllib3/connectionpool.py", line 440, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib64/python3.6/http/client.py", line 1346, in getresponse
response.begin()
File "/usr/lib64/python3.6/http/client.py", line 307, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python3.6/http/client.py", line 276, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mailmanve/lib64/python3.6/site-packages/mailmanclient/restbase/connection.py", line 112, in call
headers=headers)
File "/opt/mailmanve/lib64/python3.6/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/opt/mailmanve/lib64/python3.6/site-packages/requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "/opt/mailmanve/lib64/python3.6/site-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "/opt/mailmanve/lib64/python3.6/site-packages/requests/adapters.py", line 498, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/mailmanve/lib64/python3.6/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/mailmanve/lib64/python3.6/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/opt/mailmanve/lib64/python3.6/site-packages/postorius/auth/decorators.py", line 60, in wrapper
return fn(*args, **kwargs)
File "/opt/mailmanve/lib64/python3.6/site-packages/postorius/views/list.py", line 620, in list_moderation
paginator_class=MailmanPaginator)
File "/opt/mailmanve/lib64/python3.6/site-packages/django_mailman3/lib/paginator.py", line 71, in paginate
objects = paginator.page(page_num)
File "/opt/mailmanve/lib64/python3.6/site-packages/django_mailman3/lib/paginator.py", line 47, in page
result = self.function(count=self.per_page, page=number)
File "/opt/mailmanve/lib64/python3.6/site-packages/mailmanclient/restobjects/mailinglist.py", line 132, in get_held_page
return Page(self._connection, url, HeldMessage, count, page)
File "/opt/mailmanve/lib64/python3.6/site-packages/mailmanclient/restbase/page.py", line 37, in __init__
self._create_page()
File "/opt/mailmanve/lib64/python3.6/site-packages/mailmanclient/restbase/page.py", line 62, in _create_page
response, content = self._connection.call(self._build_url())
File "/opt/mailmanve/lib64/python3.6/site-packages/mailmanclient/restbase/connection.py", line 136, in call
'Could not connect to Mailman API: ', repr(e))
mailmanclient.restbase.connection.MailmanConnectionError: ('Could not connect to Mailman API: ', "ConnectionError(ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',)),)")
ERROR 2021-02-25 17:28:14,271 393 django.request Service Unavailable: /postorius/lists/cpa-announcement.caltech.edu/held_messages
ERROR 2021-02-25 17:28:14,271 393 django.request Service Unavailable: /postorius/lists/cpa-announcement.caltech.edu/held_messages
4 years, 4 months

Re: Subscription request cannot be moderated: 404 Not Found
by Eric Broens
Hi Mark,
I can't find any log entry which indicate a problem with this subscription request.
The _request table does not contain a request for the specific mailinglist, but I am not sure if subscription requests are included in this table.
The token is found in the pended table:
+-----+------------------------------------------+---------------------+
| id | token | expiration_date |
+-----+------------------------------------------+---------------------+
| 115 | 4d6b4b11266c7332684c5a492eb3f92c531f761b | 2031-01-04 16:17:38 |
+-----+------------------------------------------+---------------------+
These are the relevant entries in the pendedkeyvalue table:
+------+--------------+-------------------------------------+-----------+
| id | key | value | pended_id |
+------+--------------+-------------------------------------+-----------+
| 1130 | type | subscription | 115 |
| 1131 | list_id | "********************" | 115 |
| 1132 | email | "***********************@*********" | 115 |
| 1133 | display_name | "" | 115 |
| 1134 | when | "2021-01-06T16:17:38" | 115 |
| 1135 | token_owner | "moderator" | 115 |
+------+--------------+-------------------------------------+-----------+
Can I workaround this problem for this specific subscriber by adding entries in the _request table, and if so what do I need to add?
Thanks in advance,
Eric
On Friday, January 15, 2021, 11:42:47 PM GMT+1, Mark Sapiro <mark(a)msapiro.net> wrote:
On 1/14/21 3:43 PM, Eric Broens via Mailman-users wrote:
> Hi Mark,
> The link that shows the subscription request pending approval is as follows: 'https://<host_url>/postorius/lists/<listname>.<domain>/subscription_requests'
>
> The link behind the accept button is as follows. 'https://<host_url>/postorius/lists/<listname>.<domain>/handle_subscription_request/4d6b4b11266c7332684c5a492eb3f92c531f761b/accept'
>
> I have checked if there is already a subscription with that email address, but that's not the case.
I don't know why that would 404 unless the token
4d6b4b11266c7332684c5a492eb3f92c531f761b didn't exist, but since it came
from a "current" view, it should be good.
I have seen occasional issues where two moderators attempt to handle the
same request in close succession - i.e. both get the pending request and
try to handle it and the second fails because the request is gone, but
that appears not to be the case here.
You might check the web server logs, the Django log and Mailman's logs
to see if there is any more of a clue.
--
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/
4 years, 5 months

Re: Mailman, etc. upgrade woes and persistent bugs
by Ruth Ivimey-Cook
Steve,
What I mean by per-user permissions is that some transitions, for
example bounce-disabled to enabled, should be only possible by someone
with appropriate permission to do so -- perhaps the list admin, perhaps
someone else, but not just anyone. Another example _could_ be if a user
disables themselves then only that user can re-enable them again (though
I can see that might not be good).
Of course, you can to some extent group users by role, so 'admin' role
is always ok, 'list-owner' role is ok for any action on that list, etc.
If you had a 'role' which was 'account-owner' then you can probably code
the rule for re-enabling an account disabled by the account owner as
"role = admin or role = list-owner or role = account-owner". Whether
this needs to be extended to "role=admin or user = guy" (where 'guy' is
a named account holder) I don't know... I suspect it would be better if
that wasn't done unless it was shown to be necessary, as "here be dragons".
Do you see where I'm at?
In writing this up it occurs to me that being able to see/edit rules
such as these, stored in per-list config, would probably be a good
thing. Don't know how practical that is though.
Regards,
Ruth
On 16/02/2021 15:29, Stephen J. Turnbull wrote:
> Hi, Ruth,
>
> Thanks for the comments. I'll have to think about most of it, but I
> have one immediate question.
>
> Ruth Ivimey-Cook writes:
> >
> > On 13/02/2021 16:34, Stephen J. Turnbull wrote:
>
> > > I don't think separate booleans is a good idea, since they're
> > > basically mutually exclusive states[.]
> >
> > While using one variable makes some sense as you say, it does
> > complicate the allowed state transitions especially when per-user
> > permissions as well as logic are applied to the situation.
>
> I don't understand how "per-user permissions" apply here.
>
> Regards,
> Steve
--
Software Manager & Engineer
Tel: 01223 414180
Blog: http://www.ivimey.org/blog
LinkedIn: http://uk.linkedin.com/in/ruthivimeycook/
4 years, 4 months

Re: Edit archived email? Is it possible?
by Prasanth Nair
Hi Mark,
Thank you for your help. Let me try this.
Kind regards,
Prasanth
On Tue, 28 Sept 2021 at 18:03, Mark Sapiro <mark(a)msapiro.net> wrote:
> On 9/28/21 6:02 AM, Prasanth Nair wrote:
> > Hello,
> >
> > Does anyone know how to edit an archived email in Mailman3? It is
> possible
> > in Mailman2 (
> >
> https://wiki.list.org/DOC/How%20do%20I%20edit%20the%20archives%20of%20a%20M…
> ).
> > Is there any option similar to this in Mailman3?
>
>
> In some sense the process is the same but possibly even simpler in
> Mailman 3. You need to modify the underlying data which requires
> appropriate access to the server.
>
> In Mailman 3, the data are in the hyperkitty_email table in Mailman's
> database. You can get the Message-ID hash from the URL to the archived
> message, e.g. for the message to which I'm replying, the URL is
>
> https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message…
> and the hash is 7PVJL23DLSWMXXL44ALQUO6VSYBRZ4OA. Then if you have
> access, you can do database queries like
> ```
> SELECT subject, content FROM hyperkitty_email WHERE message_id_hash =
> '7PVJL23DLSWMXXL44ALQUO6VSYBRZ4OA';
> ```
> and
> ```
> UPDATE hyperkitty_email SET content = '<new content>' WHERE
> message_id_hash = '7PVJL23DLSWMXXL44ALQUO6VSYBRZ4OA';
> UPDATE hyperkitty_email SET subject = '<new subject>' WHERE
> message_id_hash = '7PVJL23DLSWMXXL44ALQUO6VSYBRZ4OA';
> ```
> If the message has attachments, they are in the hyperkitty_attachment
> table and can be referenced by `email_id` which is the corresponding
> `id` from the hyperkitty_email entry.
>
> You can also do similar things via `django-admin shell`. E.g.
> ```
> $ django-admin shell
> Python ...
> (InteractiveConsole)
> >>> from hyperkitty.models.email import Email
> >>> x =
> Email.objects.filter(message_id_hash='7PVJL23DLSWMXXL44ALQUO6VSYBRZ4OA')
> >>> print(x[0].content)
> ```
> but this requires some knowledge of HyperKitty's models and Django's ORM.
>
> --
> 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/
>
3 years, 9 months

Re: Message IDs
by Philip Colmer
On Fri, 15 Oct 2021 at 11:05, Stephen J. Turnbull
<stephenjturnbull(a)gmail.com> wrote:
>
> Philip Colmer writes:
>
> > The situation we're seeing is that if person A sends an email from a Google
> > account to Mailman 3 and receives the (modified) post back from Mailman 3,
> > the message ID is not being changed. Google's behaviour then is not to show
> > that message to the user because it thinks it is the same message that the
> > user sent out.
>
> Google is broken, but they're not going to change.
No argument here.
>
>
> > Since Mailman 3 is modifying the message, it ought to have a different
> > message ID.
>
> I don't think your posters would agree that Mailman is the author of
> their posts.
I'm not sure that the message ID identifies the author, does it?
I've just done a quick test of sending myself an email and then replying to it.
The original email has a message ID of
CAKTSSThxADLoO=Cy5cNzHoihGb5dYbmB0iw_ThTqe9T9At9efw(a)mail.gmail.com
In the reply, the following headers are present:
References: <CAKTSSThxADLoO=Cy5cNzHoihGb5dYbmB0iw_ThTqe9T9At9efw(a)mail.gmail.com>
In-Reply-To: <CAKTSSThxADLoO=Cy5cNzHoihGb5dYbmB0iw_ThTqe9T9At9efw(a)mail.gmail.com>
Message-ID: <CAKTSSTh-Fgy63MbDQtWS=oPCw0kGxTmj5RxRe6r1U0W=Die4mQ(a)mail.gmail.com>
Would it be reasonable for Mailman 3 to use "References:" to keep the
original Message ID and then add a new Message ID?
I think that what Mailman 3 is doing is similar to forwarding the
email. If I forward an email, again the headers change:
References: <CAKTSSThxADLoO=Cy5cNzHoihGb5dYbmB0iw_ThTqe9T9At9efw(a)mail.gmail.com>
<CAKTSSTh-Fgy63MbDQtWS=oPCw0kGxTmj5RxRe6r1U0W=Die4mQ(a)mail.gmail.com>
In-Reply-To: <CAKTSSTh-Fgy63MbDQtWS=oPCw0kGxTmj5RxRe6r1U0W=Die4mQ(a)mail.gmail.com>
Message-ID: <CAKTSSTjwP1_J_f5mL03dhebVWNPQwL5tXORxuEXK4_8XpHvtpA(a)mail.gmail.com>
> The IETF has addressed the issue of non-identical but equivalent
> messages with the Resent-Message-ID field (and in general the whole
> suite of Resent-* fields.
Mailman doesn't appear to be adding that header. Would that be an
acceptable solution instead of the one I suggested above?
I appreciate your view that Google is broken. I'm just trying to find
an acceptable solution to the end-user perception of "I've sent an
email to the list but I haven't received a copy back". That is going
to be a big issue/headache for us.
Thanks.
Philip
3 years, 8 months

docker mailman-core mailman3 image not responding on port 8024
by bob B
Ok, I took a step back and started fresh... So the issue appears to be that mailman-core docker image is not replying on port 8024.
I did a packet capture and it shows (172.23.01 is the gateway for the docker network on the host, 172.23.03 is the IP of mailman-core when I did the capture)
***************************************
1 2021-08-16 14:15:14.865053 172.23.0.1 172.23.0.3 TCP 74 34066 → 8024 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=985607751 TSecr=0 WS=128
2 2021-08-16 14:15:14.865084 172.23.0.3 172.23.0.1 TCP 54 8024 → 34066 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
***************************************
The above show the docker host sending/relaying mail to mailman-core, but mailman-core does not acknowledge on port 8024.
The images are up i.e
***************************************
58923db6fb9f maxking/mailman-core:0.3 "docker-entrypoint.s…" 26 minutes ago Up 25 minutes 127.0.0.1:8001->8001/tcp, 127.0.0.1:8024->8024/tcp mailman-core
***************************************
Docker yamel has the port setup (8024)
***************************************
services:
mailman-core:
image: maxking/mailman-core:0.3
container_name: mailman-core
hostname: mailman-core
.
.
ports:
- "127.0.0.1:8001:8001" # API
- "127.0.0.1:8024:8024" # LMTP - incoming emails
networks:
mailman:
***************************************
I can nc to the ports for docker web & 8001 on core and they are listening
But 8024 is not responding
***************************************
#>docker-mailman-host]# nc -v 172.23.0.4 8000
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 172.23.0.4:8000.
^C
#>docker-mailman-host]# nc -v 172.23.0.4 8080
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 172.23.0.4:8080.
^C
#>docker-mailman-host]# nc -v 172.23.0.3 8001
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 172.23.0.3:8001.
^C
#>docker-mailman-host]# nc -v 172.23.0.3 8024
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection refused
***************************************
Docker logs show postfix is up on mailman-core
***************************************
sudo docker logs mailman-core
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+---------+----------+------------+------------+---------------------
mailmandb | mailman | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | mailman | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | mailman | UTF8 | en_US.utf8 | en_US.utf8 | =c/mailman +
| | | | | mailman=CTc/mailman
template1 | mailman | UTF8 | en_US.utf8 | en_US.utf8 | =c/mailman +
| | | | | mailman=CTc/mailman
(4 rows)
Postgres is up - continuing
Using Postfix configuration
Found configuration file at /opt/mailman/mailman-extra.cfg
HYPERKITTY_URL not set, using the default value of http://mailman-web:8000/hyperkitty
***************************************
Any ideas is there anything else I can do to troubleshoot? Is the issue with the mailman-core image?
3 years, 10 months

Re: signup / registration error - permissions and cert chains
by David Newman
On Dec 31, 2021, at 03:43, Victoriano Giralt <victoriano(a)uma.es> wrote:
>
> El viernes, 31 de diciembre de 2021 1:48:38 (CET) David Newman escribió:
>> I'd like for regular (non-admin) list subscribers to be able to manage
>> their subscription preferences and view list archives.
>
> That's a good way to go :-)
>
> My response is more of a (very) old sysadmin and Django user (since 2008)
> hunch that a proper one based on code and documentation review, but I've been
> trying to contribute several times and always (super) Mark Sapiro beats me :-)
>
>> If I'm reading the error correctly, this is related to an inability to
>> verify the cert chain. The /etc/mailman3/settings.py file points to the
>> same cert and key files used by Nginx, Postfix, and Dovecot.
>
> You are right in your diagnose but not in your interpretation (see my comment
> below inside the traceback). It is certificate related, but not for server
> TLS, but for CLIENT authentication.
>
>
>> EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
>> EMAIL_HOST = 'localhost'
>> EMAIL_PORT = 25
>> EMAIL_HOST_USER = 'dnewman(a)networktest.com'
>> EMAIL_HOST_PASSWORD = 'wouldnt-you-like-to-know'
>> EMAIL_USE_TLS = 'True'
>> EMAIL_SSL_CERTFILE = '/etc/ssl/certs/myhost.crt'
>> EMAIL_SSL_KEYFILE = '/etc/ssl/private/myhost.key'
>
> All these settings above are used for SENDING messages and, if I'm not
> mistaken, the SSL key and cert are used for authenticating the user sending
> the email. Actually, using TLS and SMTP Auth for localhost is a bit too much.
> I've been configuring SMTP servers since 1990 and my mail servers just accept
> mail form localhost, if they are broken into, the user and password have
> already been exposed :-)
>
>> But this might only be for email, not Postorius/Django.
>
> You are right (if I also am)
>
>> What additional configuration is needed to allow regular users to create
>> and manage their own accounts?
>
> I'd say that is more what is not needed (the SMTP TLS authentication)
>
> I'll remove the "noise". These are the tell tale lines:
>
>> "/opt/mailman/venv/lib/python3.9/site-packages/django/core/mail/backends/smt
>> p.py", line 67, in open
>> self.connection.starttls(keyfile=self.ssl_keyfile,
>> certfile=self.ssl_certfile)
>
> The SMTP Django backend is trying to connect to the mail server to send the
> Mailman account confirmation message and failing, probably because the user
> Django runs as cannot open the private key (which is a very sensible thing if
> that private key is the one used for the web facing TLS certificate, I can
> tell you how bad in private or search for my name, wasd, apache and VMS ;-))
>
> That certificate is not needed for sending email from Django, and, as I said,
> not even SMTP Auth for sending via localhost. Actually, doing SMTP Auth on
> port 25 is not even recommended practice.
Hi Victoriano,
Thanks for this. I could use some clarification on what specific changes you are suggesting. I *think* you are saying to remove the EMAIL_USE_TLS stuff and also move to another port (maybe 587), but I am not sure.
Also, the reason I added the TLS in the first place was that I was getting errors without it. And I am unclear why the cert / private key pair do not work for Django when they do work OK for Postfix, Nginx, and Dovecot.
Thanks for clarifying — and happy and safe 2022 to you as well!
dn
>
> Happy, healthy, safe and well ventilated New Year to all.
>
> --
> Victoriano Giralt Innovation Director
> Digital Transformation Vicerectorate University of Malaga
> +34952131415 SPAIN
> ==================================================================
> Note: signature.asc is the electronic signature of present message
> A: Yes.
>> Q: Are you sure ?
>>> A: Because it reverses the logical flow of conversation.
>>>> Q: Why is top posting annoying in email ?
>
>
>
> _______________________________________________
> 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/
3 years, 6 months