GNU Mailman 3 changes¶
Copyright (C) 1998-2018 by the Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Here is a history of user visible changes to Mailman.
3.3.3¶
(2021-02-02)
Bugs¶
Handle some UnicodeEncodeErrors in creating digests. (Closes #560)
Increased the size of the data column in the workflowstate table. (Closes #793)
Implemented a
scrubberfor plain text digests. (Closes #473)The
mailman gatenewscommand now addsoriginal_sizeas a message attribute. (Extends fix for #762)Handle FileNotFoundError when creating digest.mmdf file without a parent directory present. (Closes #699)
Fixed an issue where content filtering can throw UnicodeEncodeError when converting HTML to plain text. (Closes #798)
A bounce for a non-existent list is now handled. (Closes #799)
RFC 2047 From: headers in emailed
joincommands are now decoded. (Closes #802)The
mailman addmemberscommand now catches and reports aSubscriptionPendingError. (Closes #805)RFC 2369
List-Ownerheader is now added when these headers are included. (Closes #809)Header filters will now properly match RFC 2047 encoded headers. (Closes #815)
Mailman’s
vettelog discard messages now include the reasons. (Closes #816)Increase the default REST API (gunicorn) timeout to 360 seconds from 30 as several API endpoinds can be very slow. (Closes #770)
Header filter rules are now properly processed after deletions and/or reordering. (Closes #818)
Folded
To: list-confirm+token@...headers are now parsed correctly. (Closes: #819)
Command line¶
A new
findmembermailmansubcommand has been added to find to which lists and with which roles an address matching a given pattern belongs.A new
changeaddressmailmansubcommand has been added to enable site admins to change a user’s address.
New Features¶
There is a new setting
hold_digestin the[mailman]section of mailman.cfg. If this is set toyes, posts with a digest like Subject: header or which quote the digest masthead will be held for moderation.
REST¶
List configuration option
send_goodbye_messageis now exposed through the REST API. (See !737)Allow updating an Addresses’ display_name attribute. (Closes #786)
Allow specifying a reason when rejecting a subscription request. (Closes #767)
REST API now exposes unsubscription requests that can be handled by Moderator. (Closes #768)
3.3.2¶
(2020-11-6)
Bugs¶
When importing 2.1 lists, ignore CR characters added by browsers in headers and footers. (Closes #701)
RFC 2369 headers are now added to notification messages. (Closes #710)
Bounce probes are now encoded in the correct charset. (Closes #712)
We now unfold address containing headers before parsing in avoid_duplicates. (Closes #725)
The
dmarcrule no longer misses if DNS returns a name containing upper case. (Closes #726)Fixed
mailman.email.message.Message.as_stringto not return unicode surrogates. (Closes #732)Bounce probes can now be sent to a member subscribed as a User. (Closes #739)
A member subscribed as a User can now be unsubscribed. (Closes #734)
When a handler rejects or discards a message, it won’t be delivered or archived anyway. (Closes #752)
Messages forwarded when content filtering removes the entire message and
filter_actionis forward now go to owners as well as moderators. (Closes #753)Handle TOCTOU conditions when there are two simultaneous subscription requests for the same email address. (Closes #748)
Removed unnecessary call to
Lock().disown()frombin/master.py. (Closes #754)Fixed an invalid logging call in bin/master.py. (Closes #756)
VERPed list welcome messages now have a correct envelope sender. (Closes #757)
Messages in digests now contain a
Message: Nheader. (Closes #764)The LMTP runner will now add a
Message-ID:header if missing. (Closes #448 and #490)The
mailman gatenewscommand now addsoriginal_sizeto the msgdata. (Closes #762)
Command line¶
New
addmembers,delmembersandsyncmembersmailmansubcommands have been added. These provide more options and controls than the correspondingmailman membersmodes which are now deprecated. (Closes #686)The
mailman confcommand without a-s/--sectionargument will now show sections defined only in mailman.cfg in addition to those from schema.cfg. (Closes #736)Added a
charsetoption to theimport21subcommand. (Closes #769)The
import21subcommand will now truncate long SAUnicode values if the database is MySQL. (Closes #772)The
import21subcommand no longer adds the entire legacy*_these_nonmemberslist and then removes the non-regexps. It now just adds the regexps. (Closes #773)
REST¶
Add a new endpoint
/lists/<listid>/requests/countwhich returns total number of pending requests. (Closes #713)Subscription requests API now allows filtering requests with
token_ownerparameter. (Closes #714)Add
subscription_modetoMemberresource so API clients can differentiate between subscription via address and via primary address of an user. (Closes #707)Add
/list/<listid>/held/countto get a count of total held messages. (Closes #713)Add
fieldsas an optional parameter in all the Member’s APIs to customize which fields are included in the resource. (Closes #716)Expose
emergencyfield of MailingList via REST API. (Closes #719)
Localization¶
Italian translations of the templates have been added.
The default charset for many languages is changed to utf-8. (Closes #747)
Others¶
Add a new
archive_rendering_modeattribute toMailingListto configure what kind of rendering should Archivers use to render Emails. (Closes #720)An
address=option has been added to the emailjoincommand to allow requesting subscription of other than the sender of the email. (Closes #721)Added the ability to invite members to a list. (Closes #510 and #730)
Made (un)subscription confirmation email subjects user friendly and translatable. (Closes #541)
Implemented a new email
whocommand to obtain list membership.Add support for dnspython>=2.0. (Closes #743)
Added information about
pass_types,filter_extensionsandpass_extensionsto the content filtering doc. (Closes #775)
3.3.1¶
(2020-04-19)
Bugs¶
Allow
actionfor header matches to be None in REST interface. (Closes #671)It is now possible to add the list posting address with nonmember role, e.g. to give it a moderaction of discard. (Closes #633)
The issue of posting a message without a To: header to a fully personalized list throwing a KeyError has been fixed. (Closes #639)
Confirmation or moderator approval of a subscription from an address banned subsequent to subscribing will no longer succeed. (Closes #642)
Fixed an issue caused by the fix for #642 where email confirmation of a banned subscription address would cause a shunted message. (Closes #643)
Fixed a bug where the
postfix_vmapfile would merge two columns for long domain names. (Closes #651)Fix failing test cases due to changed API in a new version of dkimpy. (Closes #655)
Mailman now auto-geneartes alias maps when it starts for the first time. (Closes #469)
Sending a bounce probe now resets
bounce_score. (Closes #660)Bounce probes which bounce are now properly recognized. (Closes #661)
Residual bounces are logged but are not processed further. (Closes #662)
Disabling delivery by bounce properly initializes some bounce info so warnings can be sent and the member eventually removed. (Closes #663)
Bouncing member is not removed until
bounce_you_are_disabled_warnings_intervalafter the last warning was sent. (Closes #664)Fixed recipient address in delivery disabled by bounce notice to the user. (Closes #665)
Residial bounces are now marked as processed. (Closes #669)
Find members API now searches for the Member’s display name too. (Closes #667)
Content filtering
convert_html_to_plaintextno longer creates messages that can’t be flattened as_bytes. (Closes #677)Removed an incorrect failing assertion when confirming a confirm_then_moderate unsubscription. (Closes #553)
Fix a bug due to incompatible API of a new version of
importlib_resourceslibrary which causes Templates loading to fail. (Closes #691)Fix a bug due to incompatible API of a new version of
zope.intefaces. (See !606)Import21 no longer tries to import banned addresses. (Closes #688)
Command line¶
A new
mailman members --synccommand has been added to help you synchronize subscribed mailing list members against a text list of subscription addresses. (see !545)
REST¶
Expose
max_days_to_hold,accept_these_nonmembers,reject_these_nonmembers,discard_these_nonmembers,hold_these_nonmembers,personalize, andunsubscription_policyattributes of a MailingList through API. (See !570)Add a new
send_welcome_messageflag when subscribing users to override MailingList’s default setting. (Closes #362)Expose content filtering settings for MailingList. (Closes #694)
Add
advertisedattribute toMailingListobject so Postorius doesn’t have to make multiple calls for Index Page. (See !608)Expose
filter_actionattribute of MailingList through API. (See !609)Unsubscribing a user by calling
DELETEon a Member resources now honors Lists’sunsubscription_policyand also sends out notifications to user and admins if list is configured to do so. (Closes #759)
Features¶
Add support for processing of email bounce events. Thanks to Aaryan Bhagat for working on this as a part of his GSoC project and Thanks to Google for sponsoring the project as a part of GSoC.(See !584)
3.3.0 – “Tom Sawyer”¶
(2019-09-04)
Bugs¶
A list member with
receive_list_copyset toFalsewho is addressed inCCwill now be removed fromCCeven if this results in noCC. (Closes #575)X-Mailman-Approved-Atheader now has correct timezone. (Closes #584)A spurious
invalid FilterAction: discard. Treating as discardlog message is eliminated. (Closes #592)A post from a nonmember matching the legacy
accept_these_nonmembersis now subject to subsequent rules rather than accepted immediately. (Closes #587)Email attempts to subscribe a user who is banned or has a subscription already pending are now handled properly. (Closes #577 and #583)
It is no longer possible to add the list’s posting address with any role to a list. (Closes #599)
Fixed the nntp runner which was calling the
nntplib.NNTP.post()method with a string object instead of bytes. (Closes #613)A post with a Reply-To: the list address will no longer be shunted. (Closes #614)
Encoded (base64 or quoted-printable) HTML message bodies are now decoded for
html_to_plaintext. (Closes #616)Non-VERPed temporary failure DSNs are no longer reported as unrecognized bounces. (Closes #622)
Fix
mailman