diff options
Diffstat (limited to '')
-rw-r--r-- | Mailman/Archiver/pipermail.py | 4 | ||||
-rw-r--r-- | Mailman/Handlers/SpamDetect.py | 10 | ||||
-rw-r--r-- | Mailman/MTA/Postfix.py | 7 | ||||
-rw-r--r-- | NEWS | 24 | ||||
-rw-r--r-- | bin/Makefile.in | 4 | ||||
-rw-r--r-- | bin/mailman-config | 40 | ||||
-rwxr-xr-x | configure | 33 | ||||
-rw-r--r-- | configure.in | 18 | ||||
-rwxr-xr-x | templates/de/listinfo.html | 2 | ||||
-rwxr-xr-x | templates/de/options.html | 26 | ||||
-rw-r--r-- | tests/bounces/groupwise_03.txt | 91 |
11 files changed, 236 insertions, 23 deletions
diff --git a/Mailman/Archiver/pipermail.py b/Mailman/Archiver/pipermail.py index c03d43b3..9b0813b0 100644 --- a/Mailman/Archiver/pipermail.py +++ b/Mailman/Archiver/pipermail.py @@ -249,8 +249,8 @@ class Article: if date is None: date = floatdate(message.get('x-list-received-date')) if date is None: - date = floatdate(re.sub(r'^.*;\s*', '', - message.get('received', ''), flags=re.S)) + rec_re = re.compile(r'^.*;\s*', re.DOTALL) + date = floatdate(rec_re.sub('', message.get('received', ''))) if date is None: date = floatdate(re.sub(r'From \s*\S+\s+', '', message.get_unixfrom() or '' )) diff --git a/Mailman/Handlers/SpamDetect.py b/Mailman/Handlers/SpamDetect.py index 257cdb24..4e554d70 100644 --- a/Mailman/Handlers/SpamDetect.py +++ b/Mailman/Handlers/SpamDetect.py @@ -56,7 +56,12 @@ class SpamDetected(Errors.DiscardMessage): """The message contains known spam""" class HeaderMatchHold(Errors.HoldMessage): - reason = _('The message headers matched a filter rule') + def __init__(self, pattern): + self.__pattern = pattern + + def reason_notice(self): + pattern = self.__pattern + return _('Header matched regexp: %(pattern)s') # And reset the translator @@ -195,6 +200,7 @@ error, contact the mailing list owner at %(listowner)s.""")) # pass it here but list-owner can set this to be # discarded on the GUI if he wants. return - hold_for_approval(mlist, msg, msgdata, HeaderMatchHold) + hold_for_approval( + mlist, msg, msgdata, HeaderMatchHold(pattern)) if action == mm_cfg.ACCEPT: return diff --git a/Mailman/MTA/Postfix.py b/Mailman/MTA/Postfix.py index b829ad6e..6fa3f14a 100644 --- a/Mailman/MTA/Postfix.py +++ b/Mailman/MTA/Postfix.py @@ -56,7 +56,12 @@ def _update_maps(): if (stat[ST_MODE] & targetmode) <> targetmode: os.chmod(file, stat[ST_MODE] | targetmode) dbfile = file + '.db' - stat = os.stat(dbfile) + try: + stat = os.stat(dbfile) + except OSError, e: + if e.errno <> errno.ENOENT: + raise + return if (stat[ST_MODE] & targetmode) <> targetmode: os.chmod(dbfile, stat[ST_MODE] | targetmode) user = mm_cfg.MAILMAN_USER @@ -7,8 +7,32 @@ Here is a history of user visible changes to Mailman. 2.1.26 (xx-xxx-xxxx) + New Features + + - Thanks to Lindsay Haisley, there is a new bin/mailman-config command + to display various information about this Mailman version and how it + was configured. + + i18n + + - The German translation of a couple of templates has been updated by + Thomas Hochstein. + + - The Japanese translation of Defaults.py.in has been updated by + Yasuhito FUTATSUKI. + Bug fixes and other patches + - Mailman 2.1.22 introduced a Python 2.7 dependency that could affect + bin/arch processing a message without a valid Date: header. The + dependency has been removed. (LP: #1740543) + + - Messages held for header_filter_rules now show the matched regexp in + the hold reason. (LP: #1737371) + + - When updating the group and mode of a .db file with Mailman's Postfix + integration, a missing file is ignored. (LP: #1734162) + - The DELIVERY_RETRY_WAIT setting is now effective. (LP: #1729472) 2.1.25 (26-Oct-2017) diff --git a/bin/Makefile.in b/bin/Makefile.in index 22c24b04..20ae5483 100644 --- a/bin/Makefile.in +++ b/bin/Makefile.in @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2006 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2018 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -49,7 +49,7 @@ SCRIPTS= mmsitepass newlist rmlist add_members \ list_admins genaliases change_pw mailmanctl qrunner inject \ unshunt fix_url.py convert.py transcheck b4b5-archfix \ list_owners msgfmt.py show_qfiles discard rb-archfix \ - reset_pw.py export.py + reset_pw.py export.py mailman-config BUILDDIR= ../build/bin diff --git a/bin/mailman-config b/bin/mailman-config new file mode 100644 index 00000000..6f845270 --- /dev/null +++ b/bin/mailman-config @@ -0,0 +1,40 @@ +#! @PYTHON@ +# +# Copyright (C) 2018 by the Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# Send bug reports or suggestions to Lindsay Haisley <fmouse@fmp.com> + +"""Show basic statistics about, and build options for this +installation of Mailman. Requires python 2.""" + +print """Configuration and build information for Mailman\n""" + +print "Mailman version: %s" % "@MM_VERSION@" +print "Build Date: %s" % "@BUILD_DATE@" +print "" +print "prefix: %s" % "@prefix@" +print "var_prefix: %s" % "@VAR_PREFIX@" +print "mailman_user: %s" % "@MAILMAN_USER@" +print "mailman_group: %s" % "@MAILMAN_GROUP@" +print "mail_group: %s" % "@MAIL_GROUP@" +print "cgi_group: %s" % "@CGI_GROUP@" +print "" + + +print "configure_opts: \"%s\"" % "@CONFIGURE_OPTS@" + @@ -651,8 +651,11 @@ INSTALL_PROGRAM KOCODECSPKG JACODECSPKG EMAILPKG +MM_VERSION PYTHON with_python +BUILD_DATE +CONFIGURE_OPTS target_alias host_alias build_alias @@ -672,6 +675,7 @@ infodir docdir oldincludedir includedir +runstatedir localstatedir sharedstatedir sysconfdir @@ -753,6 +757,7 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' @@ -1005,6 +1010,15 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1142,7 +1156,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir + libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1295,6 +1309,7 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -2127,6 +2142,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # /usr/local/mailman is the default installation directory +CONFIGURE_OPTS=`echo $@` + +BUILD_DATE=`date` + # Check for Python! Better be found on $PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-python" >&5 @@ -2292,6 +2311,17 @@ $PYTHON conftest.py needemailpkg=`cat conftest.out` rm -f conftest.out conftest.py +cat > getver.py <<EOF +from Mailman.Version import VERSION +fp = open("getver.out", "w") +fp.write("%s\n" % VERSION) +fp.close() +EOF +$PYTHON getver.py +MM_VERSION=`cat getver.out` +rm -f getver.out getver.py + + # Should we rely on Python's own email package or use the pre-packaged version? if test "$needemailpkg" = "ok" @@ -4542,6 +4572,7 @@ build/bin/unshunt:bin/unshunt \ build/bin/update:bin/update \ build/bin/version:bin/version \ build/bin/withlist:bin/withlist \ +build/bin/mailman-config:bin/mailman-config \ build/bin/b4b5-archfix:bin/b4b5-archfix \ build/bin/rb-archfix:bin/rb-archfix \ build/contrib/check_perms_grsecurity.py:contrib/check_perms_grsecurity.py \ diff --git a/configure.in b/configure.in index f7bb7919..e4956674 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2008 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2018 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -23,6 +23,10 @@ AC_INIT(src/common.h) # /usr/local/mailman is the default installation directory AC_PREFIX_DEFAULT(/usr/local/mailman) +CONFIGURE_OPTS=`echo $@` +AC_SUBST(CONFIGURE_OPTS) +BUILD_DATE=`date` +AC_SUBST(BUILD_DATE) # Check for Python! Better be found on $PATH AC_MSG_CHECKING(for --with-python) @@ -135,6 +139,17 @@ $PYTHON conftest.py needemailpkg=`cat conftest.out` rm -f conftest.out conftest.py +cat > getver.py <<EOF +from Mailman.Version import VERSION +fp = open("getver.out", "w") +fp.write("%s\n" % VERSION) +fp.close() +EOF +$PYTHON getver.py +MM_VERSION=`cat getver.out` +rm -f getver.out getver.py +AC_SUBST(MM_VERSION) + # Should we rely on Python's own email package or use the pre-packaged version? AC_SUBST(EMAILPKG) if test "$needemailpkg" = "ok" @@ -705,6 +720,7 @@ bin/unshunt \ bin/update \ bin/version \ bin/withlist \ +bin/mailman-config \ bin/b4b5-archfix \ bin/rb-archfix \ contrib/check_perms_grsecurity.py \ diff --git a/templates/de/listinfo.html b/templates/de/listinfo.html index 5b659f34..75dce30f 100755 --- a/templates/de/listinfo.html +++ b/templates/de/listinfo.html @@ -88,7 +88,7 @@ Liste <MM-List-Name></MM-Archive>. <MM-Restricted-List-Message> Zufallspasswort generiert und Ihnen zugeschickt, sobald Sie Ihr Abonnement bestätigt haben. Sie können sich Ihr Passwort jederzeit per E-Mail zuschicken lassen, wenn Sie weiter unten - die Seite zum ändern Ihrer persönlichen Einstellungen aufrufen. + die Seite zum Ändern Ihrer persönlichen Einstellungen aufrufen. <MM-Reminder> </font></TD> </TR> <TR> diff --git a/templates/de/options.html b/templates/de/options.html index c8229ecb..71edcc65 100755 --- a/templates/de/options.html +++ b/templates/de/options.html @@ -36,12 +36,12 @@ <FONT COLOR="#000000"> <B>Änderung der Abonnementsinformation für die Liste <MM-List-Name></B> </FONT></TD></TR> - <tr><td colspan="2">Sie können die Adresse unter der Sie die Liste - beziehen ändern, indem Sie die neue Adresse in die Felder unten + <tr><td colspan="2">Sie können die Adresse, unter der Sie die Liste + beziehen, ändern, indem Sie die neue Adresse in die Felder unten eintragen. <B>Hinweis:</B> An die neue Adresse wird eine - Bestätigungs-E-Mail geschickt und die Änderung muss; bestätigt werden, + Bestätigungs-E-Mail geschickt und die Änderung muss bestätigt werden, bevor sie aktiv wird. - <p>Bestätigungs-E-Mails verfallen nach ca. <mm-pending-days>. + <p>Bestätigungs-E-Mails bleiben ca. <mm-pending-days> gültig. <p>Ebenso können Sie Ihren Anzeigenamen setzen oder ändern (z.B. <em>Paul Schmidt</em>). @@ -149,17 +149,17 @@ <p>Bitte beachten Sie, dass einige der Optionen eine "<em>Global ändern</em>"-Checkbox besitzen. Deren Ankreuzen bewirkt, dass die Änderungen für jede von Ihnen abonnierte Mailingliste auf <mm-host> vorgenommen werden. -Klicken Sie auf <em>Andere Abonnements auflisten</em> um zu sehen, welche +Klicken Sie auf <em>Andere Abonnements auflisten</em>, um zu sehen, welche weitern Abonnement Sie haben. <p> <TABLE BORDER="0" CELLSPACING="3" CELLPADDING="4" WIDTH="100%"> <tr><TD BGCOLOR="#cccccc"> <a name="disable"> <strong>Mailzustellung</strong></a><p> - Setzen Sie diese Option auf <em>An</em> um Nachrichten von der + Setzen Sie diese Option auf <em>An</em>, um Nachrichten von der Liste zu empfangen. - Setzen Sie diese Option auf <em>Aus</em> um keine Nachrichten - von der Liste zu empfangen (z.B. weil Sie im Urlaub sind) + Setzen Sie diese Option auf <em>Aus</em>, um keine Nachrichten + von der Liste zu empfangen (z.B. weil Sie im Urlaub sind). Wenn Sie die Mailzustellung ausstellen, vergessen Sie nicht, diese nach Ihrem Urlaub wieder anzustellen! </td><td bgcolor="#cccccc"> @@ -182,7 +182,7 @@ weitern Abonnement Sie haben. <tr><TD BGCOLOR="#cccccc"> <strong>MIME- oder Klartext-Zusammenfassungen?</strong><p> - Generell sind MIME Zusammenfassungen bevorzugt und empfohlen, aber + Generell sind MIME-Zusammenfassungen bevorzugt und empfohlen, aber falls Sie ein Problem damit haben, diese zu lesen, können Sie hier auf Klartext-Zusammenfassungen umsteigen. </td><td bgcolor="#cccccc"> @@ -202,7 +202,7 @@ weitern Abonnement Sie haben. </td></tr> <tr><TD BGCOLOR="#cccccc"> - <strong>Bestätigunsmail wenn Sie E-Mail an die Liste schicken?</strong><p> + <strong>Bestätigungsmail, wenn Sie E-Mail an die Liste schicken?</strong><p> </td><td bgcolor="#cccccc"> <mm-dont-ack-posts-button>Nein<br> <mm-ack-posts-button>Ja @@ -225,7 +225,7 @@ weitern Abonnement Sie haben. <strong>In der Liste der Abonnenten unsichtbar machen?</strong><p> Wenn sich jemand die Mitglieder der Liste anzeigen lässt, wird Ihre E-Mail-Adresse normalerweise angezeigt (in einer leicht modifizierten - Art und Weise um es Adresssammlern nicht zu leicht zu machen). + Art und Weise, um es Adresssammlern nicht zu leicht zu machen). Wenn Sie wünschen, dass Ihre Adresse nicht gezeigt wird, wählen Sie hier bitte <em>Ja</em>. </td><td bgcolor="#cccccc"> @@ -259,8 +259,8 @@ weitern Abonnement Sie haben. <strong>Möchten Sie Nachrichten erhalten, auf die kein Themen-Filter "passt"?</strong><p> - Diese Option hat nur Auswirkungen wenn Sie oben mindestens - ein Thema angegeben haben. Sie gibt an wie die + Diese Option hat nur Auswirkungen, wenn Sie oben mindestens + ein Thema angegeben haben. Sie gibt an, wie die Standardzustellungsregel für Nachrichten lautet, auf die kein Thema passt. Geben Sie hier <em>Nein</em> an, bedeutet dies, dass Sie diff --git a/tests/bounces/groupwise_03.txt b/tests/bounces/groupwise_03.txt new file mode 100644 index 00000000..d15b645b --- /dev/null +++ b/tests/bounces/groupwise_03.txt @@ -0,0 +1,91 @@ +Received: from courriel.lahavane.com (unknown [192.168.64.30]) + by mercurio.lahavane.com (Postfix) with ESMTPS id 5703592626F + for <catchall+keKf29aH@xxxxx.com>; Tue, 23 Feb 2016 13:27:54 -0500 (CST) +Received: from HRAJCARPETA (unknown [192.168.107.148]) + by correo.yyyyy.cu (Postfix) with ESMTPA id 8DF8C126F6B + for <catchall+keKf29aH@xxxxx.com>; Tue, 23 Feb 2016 13:21:55 -0500 (CST) +From: "Ivette" <reservas@yyyyy.cu> +To: <catchall+keKf29aH@xxxxx.com> +Subject: RE: Vuille - (PO28169) - IND +Date: Tue, 23 Feb 2016 13:26:01 -0500 +Message-ID: <!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAAb8aDTsTUYUWKpwEPi9zh68KAAAAQAAAAV5VlkDLux0e838EhDwTJcQEAAAAA> +MIME-Version: 1.0 +Content-Type: multipart/mixed; + boundary="----=_NextPart_000_00C9_01D16E3D.BD956500" +X-Mailer: Microsoft Office Outlook, Build 11.0.5510 +Thread-Index: AdFuZ6XxOH+qH5H+R76f2odV/Vn8MQ== +In-Reply-To: <1456018944.242038011550903.872471708902354@mercurio> +X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 +Disposition-Notification-To: "Ivette" <reservas@yyyyy.cu> + +This is a multi-part message in MIME format. + +------=_NextPart_000_00C9_01D16E3D.BD956500 +Content-Type: multipart/related; + boundary="----=_NextPart_001_00CA_01D16E3D.BD956500" + + +------=_NextPart_001_00CA_01D16E3D.BD956500 +Content-Type: multipart/alternative; + boundary="----=_NextPart_002_00CB_01D16E3D.BD956500" + + +------=_NextPart_002_00CB_01D16E3D.BD956500 +Content-Type: text/plain; + charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable + +Solicitudes de Reservas a: + <mailto:reservas@yyyyy.cu> +reservas@yyyyy.cu + + +De: keKf29aH@xxxxx.com +Enviado el: S=E1bado, 20 de Febrero de 2016 08:42 p.m. +Para: Hotel Raquel +Asunto: Fwd: (PO28169) - IND + +lorem et... + + +----------Mensaje original---------- +Subject: (PO28169) - IND +De: Yuselis Gomez Calero +Para: Hotel Raquel,Monica Perez Ansean +Date: Thu Feb 18 2016 15:31:20 GMT-0500 (CST) + + +lorem et .... + +Saludos, + +Email : yyyy@xxxxx.com +Cc: reservas@xxxxxx.cu + + +------=_NextPart_002_00CB_01D16E3D.BD956500 +Content-Type: text/html; + charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable + +<html>Removed part</html> +------=_NextPart_002_00CB_01D16E3D.BD956500-- + +------=_NextPart_001_00CA_01D16E3D.BD956500 +Content-Type: image/jpeg; + name="Hotel Raquel (19).jpg" +Content-Transfer-Encoding: base64 +Content-ID: <182512518@23022016-2BC4> + +[Removed part] +------=_NextPart_001_00CA_01D16E3D.BD956500-- + +------=_NextPart_000_00C9_01D16E3D.BD956500 +Content-Type: application/msword; + name="pratt nc 34050.RTF" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; + filename="pratt nc 34050.RTF" + +[Removed part] +------=_NextPart_000_00C9_01D16E3D.BD956500-- |