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
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.
On 10/25/2017 05:41 PM, Fabian A. Santiago wrote:
> No to the domains part and I think virtual alias maps is needed:
> mail postfix/trivial-rewrite: warning: do not list domain xxx in BOTH virtual_mailbox_domains and relay_domains
> Oct 25 20:39:19 mail postfix/trivial-rewrite: warning: do not list domain xxx in BOTH virtual_mailbox_domains and relay_domains
> Oct 25 20:39:19 mail postfix/submission/smtpd: NOQUEUE: reject: RCPT from pool-108-53-239-102.nwrknj.fios.verizon.net[188.8.131.52]: 550 5.1.1 <test123@xxx>: Recipient address rejected: User unknown in virtual mailbox table; from=<fsantiago@xxx> to=<test123@xxx> proto=ESMTP helo=<[10.0.0.29]>
(above slightly sanitized for return to the list)
The issue here is your list domain cannot be a virtual_mailbox_domain or
I have the same issue on mail.python.org where we have both Mailman 2
and Mailman 3 lists @python.org. and python.org is a virtual_alias_domain.
I have a group of MRs for a branch that implements "alias_domains" to
deal with this.
Basically it works by creating another (virtual_alias_maps) postfix_vmap
mapping to map list addresses @python.org to addresses @x.python.org.
Then the postfix_domains and postfix_lmtp maps have the x.python.org
domain and there is a patch to mailman/runners/lmtp.py to map the
x.python.org domain back to python.org.
The various MRs are
<https://gitlab.com/mailman/mailman/merge_requests/202> for the core,
<https://gitlab.com/mailman/mailmanclient/merge_requests/18> for the
REST bindings used by Postorius and
<https://gitlab.com/mailman/postorius/merge_requests/186> to be able to
set an alias_domain via Postorius.
That's not all implemented at mail.python.org. What's there is the basic
Postfix config, a bash script the generate the new mappings from the old
and a simple patch to mailman/runners/lmtp.py.
So, the bottom line is it can be done and it's in process, but it won't
really be supported until Mailman 3.2. In the mean time, you just need
to have a separate domain for your lists that isn't a virtual_*_domain.
Mark Sapiro <mark(a)msapiro.net> The highway is for gamblers,
San Francisco Bay Area, California better use your sense - B. Dylan