Greetings Selene Test Team. Here are some notes about this list to get us started.
General information:
• The web interface is at
https://mailman.lochac.sca.org
• The Mailman site administrator is mailman3(a)lochac.sca.org, which is currently an alias
for my personal address
• The Selenetest list administrators are mailman3(a)lochac.sca.org and
masonry(a)lochac.sca.org
How It Works:
Mailman3 is made up of two systemd services, mailman3 and mailman3-web, with configuration
in /etc/mailman3/mailman.cfg and /etc/mailman3/mailman-web.py, respectively.
I have configured mailman3 so that it starts only the two essential ‘runners’: the one
that accepts mail from postfix (‘lmtp’) and the one that implements the REST API (‘rest’).
The other runners, which process mail, are run from cron jobs defined in
/etc/cron.d/mailman3:
• The ‘in’, ‘pipeline’, and ‘out’ queues are cleared every ten minutes. These check
incoming mail, perform any necessary transformations on it, and send it out again,
respectively.
• The ‘command’ and ‘virgin’ queues are also cleared every ten minutes. The first
processes requests sent to listname-join@lochac, listname-leave@lochac, etc., while the
second is where Mailman inserts its own messages (moderation requests, etc.) into the
system.
• The ‘retry’ and ‘task’ queues are cleared every hour
• The ‘archive’, ‘bounces’ and ‘digest’ queues are cleared every evening
• I have disabled the ‘nntp’ runner altogether since no one is using NNTP as far as I
know
A homebrewed Python script in /var/lib/mailman3/bin/cron-runner.py processes the queues.
The script only starts the runner if mail is actually in the queue, and then only makes
one pass over the queue. I wrote this script because Mailman’s own ‘runner’ script can
only run indefinitely (which uses huge amounts of memory) or process one message at each
invocation (which is painful).
One upshot of this for ordinary people is that mail to a list may take up to 10-15 minutes
to be sent out again, and archives are only updated once per day. This can of course be
changed by changing the cron configuration.
Log files are in /var/log/mailman3. The main log is mailman3.log. The web service has
another log /var/log/mailman3/web/mailman3-web.log, which is different to the Apache log.
The Apache logs are /var/log/apache/mailman.*.log..
Manual operation:
Mailman3 has a single command-line tool, called ‘mailman’ (no 3), that performs more or
less the functions of the scripts in /usr/lib/mailman/bin in Mailman2. For most purposes,
it should be run as the ‘list’ user, otherwise it may create files or processes owned by
root that other Mailman3 processes can’t work with, e.g.
$ sudo -u list mailman info # displays version information
To process a queue manually, invoke /var/lib/mailman/bin/cron-runner with the queue’s name
as the first argument, e.g.
$ sudo -u list /var/lib/mailman/bin/cron-runner in # process all incoming mail
If mail cannot be processed due to an error (e.g. Python throws an exception), Mailman3
puts it in the ‘shunt’ queue. Once the error has been fixed, use the ‘unshunt’ command to
get the mail going again:
$ sudo -u list mailman unshunt
Other resources:
•
https://www.list.org
•
https://mailman.readthedocs.io
Ælfred
Greetings Selene Test Team. Here are some notes about this list to get= us
started.
**General information:**
* The web interface is at
[
https://mailman.lochac.sca.org](=3D"https://mailman.lochac.sca.org&quo…
=
* The Mailman site administrator is
[mailman3@lochac.sca.org](=3D"mailto:mailman3@lochac.sca.org"), which is c=
urrently an alias for my personal address
* * The =E2=80=98in=E2=80=99, =E2=80=98pipeline=E2=80=99= , and =E2=80=98out=E2=80=99
queues are cleared every ten minutes. These che= ck incoming mail, perform any necessary
transformations on it, and send it = out again, respectively.
* The =E2=80= =98command=E2=80=99 and =E2=80=98virgin=E2=80=99 queues are also cleared
ev= ery ten minutes. The first processes requests sent to listname-join@lochac,=
listname-leave@lochac, etc., while the second is where Mailman inserts its= own messages
(moderation requests, etc.) into the system.
* The =E2=80=98retry=E2=80=99 and =E2=80=98task=E2=80=99= queues are cleared every hour
* The =E2= =80=98archive=E2=80=99, =E2=80=98bounces=E2=80=99 and =E2=80=98digest=E2=80=
=99 queues are cleared every evening
* I h= ave disabled the =E2=80=98nntp=E2=80=99 runner altogether since no one is u= sing
NNTP as far as I know
A homebrewed Pytho= n script in /var/lib/mailman3/bin/cron-runner.py processes
the queues. The = script only starts the runner if mail is actually in the
queue, and then on= ly makes one pass over the queue. I wrote this script
because Mailman=E2=80= =99s own =E2=80=98runner=E2=80=99 script can only run
indefinitely (which u= ses huge amounts of memory) or process one message at
each invocation (whic= h is painful).
One upshot of this for ordinary people is that mail to a list may tak= e up to
10-15 minutes to be sent out again, and archives are only updated o= nce per
day. This can of course be changed by changing the cron configurati= on.
Log f= iles are in /var/log/mailman3. The main log is mailman3.log. The web
servic= e has another log /var/log/mailman3/web/mailman3-web.log, which is
differen= t to the Apache log. The Apache logs are
/var/log/apache/mailman.*.log.
=
**Manual op= eration:**
Mailman3 has a single command-line tool, called =E2=80=98mai= lman=E2=80=99
(no 3), that performs more or less the functions of the scrip= ts in
/usr/lib/mailman/bin in Mailman2. For most purposes, it should be run= as the
=E2=80=98list=E2=80=99 user, otherwise it may create files or proce= sses
owned by root that other Mailman3 processes can=E2=80=99t work with, e= .g.
$ sudo -u list mailman info=C2=A0=C2=A0 # displays = version information
To process a queue manually, invoke /var/lib/mailman/bin/cron-= runner with
the queue=E2=80=99s name as the first argument, e.g.
$ sudo -u list /var/lib/mailman/bin/cron-runner in=C2=A0=C2=A0=C2= =A0=C2=A0 #
process all incoming mail
If mail cannot be processed due to an error (e= .g. Python throws an
exception), Mailman3 puts it in the =E2=80=98shunt=E2= =80=99 queue. Once the
error has been fixed, use the =E2=80=98unshunt=E2=80= =99 command to get the
mail going again:
= ;
$ sudo -u list= mailman unshunt
=
**Other resources:**
=
*
https://www.list.org
* [
https://mailman.= readthedocs.io](3D"https://mailman.readthedocs.io")
=C2=A0=C2=A0=C2=A0 =C3=86lfred
=