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 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 and its references, 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
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
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)
Stephen J. Turnbull
John Viega (founder)
 Text and signatures: https://rms-open-letter.github.io
 Appendix to the letter: https://rms-open-letter.github.io/appendix
Related statements: https://rms-open-letter.github.io/statements
I have quite a few users who when they reset their password, don't receive their password reset email. It works fine for many, so they are going out. But for those who they don't go out for, I was hoping to get their password reset key/token from the database tables and send it to them...only thing is I can't find it in there! )it may not be there).
So what would you suggest for enabling people to reset their password when the system email isn't received:
- Is there a way to get the reset token so I can send it manually - if so, where/how do I find it?
- Would enabling social login be a work around for this problem?
- Anything else you can suggest?
I'm struggling to understand an aspect of SpamAssassin headers, and would greatly appreciate any help. Here is my scenario:
One of my mailbox addresses - say addr1(a)somewhere.com - is a member of a Mailman 3 mailing list.
I send a spam email (e.g. one with the GTUBE string) to the list from a different address. My mail server (Postfix/Amavis/Spamassassin) correctly identifies the mail as spam, and, appropriately, adds several spam-related headers - X-Spam-Flag, X-Spam-Score etc. I can see, from the copy of the email that lands in /var/lib/amavis/virusmails on the mail server, that those headers are indeed present.
The mail message is handed off to Mailman for processing. The list in question has nonmember_default_action set to "defer", so Mailman sends the message on to each member address.
However, the message, as it appears in the inbox of addr1(a)somewhere.com, contains no X-Spam- headers. The only indication of the message's spammish nature is in the Subject line, which has been prepended with the familiar string "***SPAM*****".
On the face of it, it looks like Mailman has removed the X-Spam-* headers. If that's so, I don't understand why. I would be very grateful if anyone could help me figure out what is going on here.
Thanks in advance,
I'm hoping someone can shine a light on character encoding issue I've encountered.
A plain-text email with non-ascii characters in the body gets posted to the list.
As per Mark Sapiro's guide I've captured the incoming message to file.
The message is received by Mailman with the non-ascii characters displaying correctly.
The header of that message has:
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Content-Type: text/plain; charset=utf-8
In the list's mbox file and archive webpage, the message displays the non-ascii characters correctly.
In the archive's downloaded .txt (and also .gz) file, the non-ascii characters are missing and displayed as "?".
I've copied the message text in below, from both the correct one from the email and the erroneous .txt file. Hopefully they won't get scrambled up when I send this.
Any advice on getting the non-ascii characters written into the archive .txt file would be gratefully received.
=== Message text as okay in mbox and as shown on the archive webpage ===
If one goes by the definition of veḷippaṭai as given in the Tamil Lexicon that the meaning of an ambiguous word should be disambiguated by a qualifying word, then aruvi āmpal does not conform to that definition since in the case of aruvi āmpal in Patiṟṟuppattu 63, aruvi is really made up of aru+vi, a compound. Moreover, the expression aṭai aṭuppu aṟiyā is already there to clarify that āmpal is a number and not a flower. Thus, aruvi simply provides information in addition to aṭai aṭuppu aṟiyā that āmpal is not a flower. The modern commentator Aruḷampalavaṉār also does not call it veḷippaṭai.
=== Message text with missing characters in te archive's txt and gz downloads ==
If one goes by the definition of ve?ippa?ai as given in the Tamil Lexicon that the meaning of an ambiguous word should be disambiguated by a qualifying word, then aruvi ?mpal does not conform to that definition since in the case of aruvi ?mpal in Pati??uppattu 63, aruvi is really made up of aru+vi, a compound. Moreover, the expression a?ai a?uppu a?iy? is already there to clarify that ?mpal is a number and not a flower. Thus, aruvi simply provides information in addition to a?ai a?uppu a?iy? that ?mpal is not a flower. The modern commentator Aru?ampalava??r also does not call it ve?ippa?ai.
I’ve got a strange error. I migrated from mailman 2.1 to 3 using the migration guide on the website and things have been working fine. But I’m in the process of testing the new syncmembers command to replace some inhouse mailman API code we wrote. I’ve tracked my problem down to what appears to be a deadlock in the postgresql database. When trying to delete certain users the SQL query hangs and never returns.
After doing some tracing and tracking it down to the database, I enabled DB logging of all queries and saw that the following query was never returning:
DELETE FROM member WHERE member.id = 166814
If I try to run it manually I get the same issue, in psql it never returns.
mailman=# explain analyze DELETE FROM member WHERE member.id = 166814;
[… 60 seconds passes…]
^CCancel request sent
ERROR: canceling statement due to user request
CONTEXT: while deleting tuple (2998,72) in relation "member"
I’m just wondering if there are any commands or scripts I can run to verify the database and it’s constraints to see if there is some error in the database data? Or where you’d recommend I go from here? It only impacts the user on this specific list. If I add this user to another list and remove them, everything works fine.
This is on a test system so I can do various testing. I’m trying to find the root cause so that I can verify my production system isn’t impacted by the same thing.
OS: Oracle Linux 7 (Redhat)
Installed using pip via virtualenv talking to a local pgsql database on the same box.
Data was migrated from a mailman 2.1 install into mailman3 using migration instructions on the website.
PIP Modules versions:
I have a mailman3 mailing list which I admin, and I would like setup the following rule.
Me and 3 of my team mates (who are part of the mailman3 list) should be able to send on the list as well as an "no-reply" user, others on the mailman3 list should only be able to receive the e-mails (and of course be able to unsubscribe themself).
"Default action to take when a non-member posts to thelist" and the "Default action to take when a member posts to the list" is set to "Default processing", and I tried to setup actions in the "Header Filters" - but no really success.. :-(
So what I basically try do achieve is to have only the following addresses to be allowed to send announcements (e-mails) on the mailman3 list, and all others that are member of the mailman3 list will just receive the e-mails. The usual "announcements" are sent out as the "no-reply" address (that actually are not really part of the mailman3 list) ;-)
no-reply(a)abc.com ("fake address" that actually are not really part of the mailing-list)
How to achieve this kind of filter with mailman3?
Hey there, we installed the latest Docker version of Mailman3 and it
seems to work for now. But I have 2 problems with configuration:
Here it says, that allowed hosts can be added:
How de we add multiple hosts? Did I miss something? When we set 1 URL,
everything works (with 2(!) Domains, since SERVE_FROM_DOMAIN is the
first one). Is there a way I miss to input multiple hosts, that the
variable is an array? We tried:
- DJANGO_ALLOWED_HOSTS='example1.com, example2.com'
And I think some more, but never works. The corresponding config file says:
ALLOWED_HOSTS = [
"localhost", # Archiving API from Mailman, keep it.
# Add here all production URLs you may have.
-> how is it possible to add an array for multiple Domains?
-> if not possible, shall we provide a fix that it is?
I want this variable to be true in my container. When I set it as a
starting variable like the other configuration options, then the
variable in the container seems to be set:
# export | grep FILTER_VHOST=
declare -x FILTER_VHOST="True"
But surely it still is set to false in mm-web-container:
# cat settings.py | grep FILTER_VHOST
FILTER_VHOST = False
-> is it ok to put the variable like that!?
-> if not, how can it be done, that it is preserved on restarting the
-> if I see it right, it could be then something like:
FILTER_VHOST = os.environ.get('FILTER_VHOST_DOCKER'),
-> with some more exceptions-handling, it might work?
Thanks in advance, Jens.
I have an (admittedly old) version of Postorius in my install on an
Ubuntu 18.04 machine.
Most things work fine. However, my version doesn't seem to have a way
to set the maximum number of recipients under Message Acceptance, and
mail is getting shunted because there was a setting for lists on the
old mailman2 lists that I migrated over. If I'm going to avoid
shunting, I have to change the value :)
Since it isn't in Postorius, how should I change it? I'm frankly
terrified of screwing things up on my production system, so any help
would be appreciated.
 python-django-postorius - 1.1.2-3
I have run several tests. It looks like on the 'Maximum number of
recipients' setting, a 2 means 1. If I set it to 2, I can have the
listname(a)listdomain.com only. If I have a CC, it comes to me for
moderation. If I set it to a 3, I can send out to
listname(a)listdomain.com plus a CC. If I set it to 3 and add 2 CC's plus
the listname(a)listdomain.com address, it comes to me for moderation.
For those who are interested in trying Mailman 3 in Kubernetes there is a Helm chart:
Your questions and contributions are very welcome!
(Sending this from Hyperkitty UI, no clue how it will look like :D )