I'm running a Mailman 3.1.0 installation on a CentOS 7 machine. Using
I do have problems with some lists occasionally going into some kind of
shunt mode, where alla mails sent to them gets shunted. In the Mailman
log I get entries for each shunted email:
Mar 17 11:54:11 2017 (6217) Uncaught runner exception: Multiple rows
were found for one_or_none()
Mar 17 11:54:11 2017 (6217) Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/mailman/core/runner.py", line
171, in _one_iteration
File "/usr/lib/python3.4/site-packages/mailman/core/runner.py", line
264, in _process_one_file
keepqueued = self._dispose(mlist, msg, msgdata)
line 37, in _dispose
process(mlist, msg, msgdata, pipeline)
line 53, in process
handler.process(mlist, msg, msgdata)
line 121, in process
process(mlist, msg, msgdata)
line 70, in process
archiver_set = IListArchiverSet(mlist)
line 33, in __call__
return self.__implementation(*args, **kw)
File "/usr/lib/python3.4/site-packages/zope/component/_api.py", line
156, in adapter_hook
return sitemanager.queryAdapter(object, interface, name, default)
line 348, in queryAdapter
return self.adapters.queryAdapter(object, interface, name, default)
85, in wrapper
return function(args, config.db.store, *args[1:], **kws)
line 607, in __init__
ListArchiver.name == archiver_name).one_or_none()
line 2733, in one_or_none
"Multiple rows were found for one_or_none()")
sqlalchemy.orm.exc.MultipleResultsFound: Multiple rows were found for
Mar 17 11:54:11 2017 (6217) SHUNTING:
And so far my Google-fu hasn't been good enough to give me any useful
answers to why this happens. If I dump one of the pickles using qfile I
cannot see any complaints.
Most of the times, if I remove and recreate a failing list and run
unshunt the shunted emails get processed and sent.
Anyone seen something similar?
Anders Nilsson, Ph.D. <andersn(a)control.lth.se>
Dep. of Automatic Control, Lund University
Phone: +46 (0)46 222 87 94, Fax: +46 (0)46 13 81 18
Mob: +46 (0)703 22 57 67
im trying to setup mailman and have an issue:
first my environment:
- I’m running postfix etc with "mailcow-dockerized": https://mailcow.github.io/mailcow-dockerized-docs/
- I’m running mailman with "docker-mailman": https://asynchronous.in/docker-mailman/
I got almost everything working (with some configuration modifications, see other mail). The only thing which doesn’t work is conformation mails, they are rejected:
In the logs I see that postfix is trying both "liste-confirm+extension@domain" and "liste-confirm@domain" for another lookup map of type mysql (so "recipient_delimiter" is working), but not for the mailman map of type regexp.
Just a wild guess, I didn't find anything about it: can it be that “recipient_delimiter" doesn't work for “regexp" maps?
For now I worked around this issue by manually modifying the confirm regex in "postfix_lmtp” to /^liste-confirm\+.*(a)domain\.tld$/
Does anyone have an idea why the regexp map isn’t working for me and at least 1 other user (see https://gitlab.com/mailman/mailman/issues/401)?
Would my workaround be a long term solution which could be implemented in mailman? That would mean that mailman could work independent of the “recipient_delimiter” setting (or do I oversee something?)
Thanks and greetings,
I have of course activated password login as it was not possible to get the
provider based logins to work (might be but not worth the time for me right
now). Is there any way for an user to request a new password when it is
I presume that the Persona login is removed now. I cannot hide it in my
version or at least I do not know how.
How do I set a template for one specific list? I want one list to have
a special footer template.
I have tried updating the database (template table) without effect so
apparently the database is not used for templates or some kind of
fallback is used to set it to the generic footer. Of course I also
tried to restart mailman after that operation to try to rule out any
I want to use a file://-path as that is the least painful way of doing
it. I also would like a solution to place a file in a special
location. My current templates are in a
structure with names like list:member:generic:footer.txt
I want to whitelist an email address on all lists to bypass moderation.
The email address is not a subscriber. On google I
found accept_these_nonmembers but I do not know how to use it.
Please show me some examples how to whitelist someone(a)example.org.
Thanks in advance.
I saw in the docs:
> We have it! We just don’t have proper documentation here yet.
Could you please be more specific - can I switch Mailman 3 installation to
I want to make you aware of a potential privacy problem in Mailman's
Hyperkitty. Under the upcoming EU General Data Protection Regulation
(GDPR), which will be in force as of 2018-05-25, it is illegal to
transmit data to third parties without a right to do so. Without going
into the details, the inclusion of third party services into one's
website is usually deemed such a transmission, and unless one has
explicit consent of the user (e.g., by an optional (!), unticked ticking
box) this is normally illegal (if one targets EU users).
The GDPR does not affect private and family use (Art. 2(2)(c) GDPR), but
the exact reach of that clause is yet to be determined; it certainly
does not exclude company use of Mailman.
I've found it's possible to disable the social login providers quite
easily (we had this discussion here on the mailinglist recently), but I
don't see an option to disable Gravatar. If there is one, please
enlighten me, but anyway I want to propose this as a feature request
against Hyperkitty. A GDPR-compliant implementation of Gravatar in
Mailman would look like this:
* In order to not transmit website visitor's data (IP address, browser
info, etc) to Gravatar, Hyperkitty has to request the avatar image
itself and not leave that to the user's browsers to do. In other
words, the HTTP GET request needs to come from the server running
Hyperkitty and the user's browser then just requests the avatar from
the Hyperkitty server. Most likely easiest way to do this is to
pre-download the avatar when an email is archived.
* In order to not transmit the subscribers' data (email address, allows
Gravatar to track the subscriber) to Gravatar illegally,
the retrieval of the avatar image from Gravatar has to be disabled by
default. Instead, an option needs to be added to the subscriber's
control panel which he has to actively enable in order to have his
Gravatar downloaded and thus used (privacy-by-default rule).
I'm not saying Gravatar tracks people and sells the information
gathered, though I have doubts on how Automattic makes money with the
service. I'm just outlining the legal duties under the upcoming GDPR for
service owners, which are independant of how Automattic processes the
data in this specific case.
Please don't dismiss this as some side feature not needed. The fines
that can be imposed on service owners due to violation of the GDPR are
very high (up to 20,000,000 € [that's 20 million euros, really]).
PGP/GPG ID: F1D8799FBCC8BC4F
Hello all ,
I configured mailman3 following this contributer guide http://docs.mailman3.org/en/latest/devsetup.html but i'am still getting problem with the configuration of MySQL and postfix . Is this section is enough for MySQL configurations ?
url: mysql+pymysql://myuser:mypassword@mymysqlhost/mailman?charset=utf8&use_unicode=1htmlI will appreciated if there are some documents to provide to cotinue the intergration of mailman3 .
Is there any tuto for postfix config ?
Thanks in advance
I am facing errors when using import21 to import list archives. The error message is "A string literal cannot contain NUL (0x00) characters." and the import stops, thus importing only mails up to 2009. The dublicates is mails already imported when retrying. If a mail contains illegal characters I would expect disregarding the particular mail and continue, or ignoring the nul character.
bash-4.3# python manage.py hyperkitty_import --verbosity 3 --since "01.01.1970" --list-address example(a)mailman3.ku.dk /opt/mailman-web-data/tmp/example(a)mailman3.ku.dk.mbox
Duplicate email with message-id '857A4D84DE6D1D41837DD9284F2729AB08F0C385(a)srv1.example.ku.dk'
Duplicate email with message-id '857A4D84DE6D1D41837DD9284F2729AB09DA5E45(a)srv1.example.ku.dk'
Failed adding message <857A4D84DE6D1D41837DD9284F2729AB09E20126(a)srv1.example.ku.dk>: A string literal cannot contain NUL (0x00) characters.
Traceback (most recent call last):
File "manage.py", line 10, in <module>
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 305, in run_from_argv
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 356, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/site-packages/hyperkitty/management/commands/hyperkitty_import.py", line 278, in handle
File "/usr/local/lib/python2.7/site-packages/hyperkitty/management/commands/hyperkitty_import.py", line 152, in from_mbox
File "/usr/local/lib/python2.7/site-packages/hyperkitty/lib/incoming.py", line 149, in add_to_list
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 796, in save
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 824, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 908, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 947, in _do_insert
File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1043, in _insert
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1054, in execute_sql
File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
ValueError: A string literal cannot contain NUL (0x00) characters.