aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Mailman/Archiver/pipermail.py4
-rw-r--r--Mailman/Handlers/SpamDetect.py10
-rw-r--r--Mailman/MTA/Postfix.py7
-rw-r--r--NEWS24
-rw-r--r--bin/Makefile.in4
-rw-r--r--bin/mailman-config40
-rwxr-xr-xconfigure33
-rw-r--r--configure.in18
-rwxr-xr-xtemplates/de/listinfo.html2
-rwxr-xr-xtemplates/de/options.html26
-rw-r--r--tests/bounces/groupwise_03.txt91
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
diff --git a/NEWS b/NEWS
index 7d6356cb..7fefb8c3 100644
--- a/NEWS
+++ b/NEWS
@@ -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@"
+
diff --git a/configure b/configure
index 2c31df3f..6749b007 100755
--- a/configure
+++ b/configure
@@ -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&auml;tigt haben. Sie k&ouml;nnen sich Ihr Passwort
jederzeit per E-Mail zuschicken lassen, wenn Sie weiter unten
- die Seite zum &auml;ndern Ihrer pers&ouml;nlichen Einstellungen aufrufen.
+ die Seite zum &Auml;ndern Ihrer pers&ouml;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>&Auml;nderung der Abonnementsinformation f&uuml;r die Liste <MM-List-Name></B>
</FONT></TD></TR>
- <tr><td colspan="2">Sie k&ouml;nnen die Adresse unter der Sie die Liste
- beziehen &auml;ndern, indem Sie die neue Adresse in die Felder unten
+ <tr><td colspan="2">Sie k&ouml;nnen die Adresse, unter der Sie die Liste
+ beziehen, &auml;ndern, indem Sie die neue Adresse in die Felder unten
eintragen. <B>Hinweis:</B> An die neue Adresse wird eine
- Best&auml;tigungs-E-Mail geschickt und die &Auml;nderung muss; best&auml;tigt werden,
+ Best&auml;tigungs-E-Mail geschickt und die &Auml;nderung muss best&auml;tigt werden,
bevor sie aktiv wird.
- <p>Best&auml;tigungs-E-Mails verfallen nach ca. <mm-pending-days>.
+ <p>Best&auml;tigungs-E-Mails bleiben ca. <mm-pending-days> g&uuml;ltig.
<p>Ebenso k&ouml;nnen Sie Ihren Anzeigenamen setzen oder &auml;ndern (z.B. <em>Paul Schmidt</em>).
@@ -149,17 +149,17 @@
<p>Bitte beachten Sie, dass einige der Optionen eine "<em>Global &auml;ndern</em>"-Checkbox
besitzen. Deren Ankreuzen bewirkt, dass die &Auml;nderungen f&uuml;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&ouml;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&auml;tigunsmail wenn Sie E-Mail an die Liste schicken?</strong><p>
+ <strong>Best&auml;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&auml;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&uuml;nschen, dass Ihre Adresse nicht gezeigt wird, w&auml;hlen Sie
hier bitte <em>Ja</em>.
</td><td bgcolor="#cccccc">
@@ -259,8 +259,8 @@ weitern Abonnement Sie haben.
<strong>M&ouml;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&uuml;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--