Update of /cvsroot/mailman/mailman/Mailman/Bouncers
In directory sc8-pr-cvs1:/tmp/cvs-serv24139/Mailman/Bouncers

Modified Files:
      Tag: Release_2_1-maint
        DSN.py Microsoft.py Postfix.py SimpleMatch.py 
Log Message:
Backporting from trunk





Index: DSN.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/Bouncers/DSN.py,v
retrieving revision 2.7
retrieving revision 2.7.2.1
diff -u -d -r2.7 -r2.7.2.1
--- DSN.py      2 Dec 2002 14:21:58 -0000       2.7
+++ DSN.py      31 Mar 2003 21:49:40 -0000      2.7.2.1
@@ -1,20 +1,24 @@
-# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2003 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 
+# along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
-"""Parse RFC 1894 (i.e. DSN) bounce formats."""
+"""Parse RFC 3464 (i.e. DSN) bounce formats.
+
+RFC 3464 obsoletes 1894 which was the old DSN standard.  This module has not
+been audited for differences between the two.
+"""
 
 from email.Iterators import typed_subpart_iterator
 from email.Utils import parseaddr

Index: Microsoft.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/Bouncers/Microsoft.py,v
retrieving revision 2.4
retrieving revision 2.4.2.1
diff -u -d -r2.4 -r2.4.2.1
--- Microsoft.py        16 Mar 2002 06:57:36 -0000      2.4
+++ Microsoft.py        31 Mar 2003 21:49:40 -0000      2.4.2.1
@@ -1,23 +1,24 @@
-# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2003 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 
+# along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 """Microsoft's `SMTPSVC' nears I kin tell."""
 
 import re
 from cStringIO import StringIO
+from types import ListType
 
 scre = re.compile(r'transcript of session follows', re.IGNORECASE)
 
@@ -32,7 +33,11 @@
     except IndexError:
         # The message *looked* like a multipart but wasn't
         return None
-    body = StringIO(subpart.get_payload())
+    data = subpart.get_payload()
+    if isinstance(data, ListType):
+        # The message is a multi-multipart, so not a matching bounce
+        return None
+    body = StringIO(data)
     state = 0
     addrs = []
     while 1:

Index: Postfix.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/Bouncers/Postfix.py,v
retrieving revision 2.6
retrieving revision 2.6.2.1
diff -u -d -r2.6 -r2.6.2.1
--- Postfix.py  21 Oct 2002 16:43:02 -0000      2.6
+++ Postfix.py  31 Mar 2003 21:49:40 -0000      2.6.2.1
@@ -1,17 +1,17 @@
-# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2003 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 
+# along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
 """Parse bounce messages generated by Postfix.
@@ -20,12 +20,10 @@
 bounces with the word Postfix scratched out and the word `Keftamail' written
 in in crayon.
 
-It also matches something claiming to be `The BNS Postfix program'.
-/Everybody's/ gotta be different, huh?
-
+It also matches something claiming to be `The BNS Postfix program', and
+`SMTP_Gateway'.  Everybody's gotta be different, huh?
 """
 
-
 import re
 from cStringIO import StringIO
 
@@ -42,7 +40,8 @@
 
 
 # are these heuristics correct or guaranteed?
-pcre = re.compile(r'[ \t]*the\s*(bns)?\s*(postfix|keftamail)', re.IGNORECASE)
+pcre = re.compile(r'[ \t]*the\s*(bns)?\s*(postfix|keftamail|smtp_gateway)',
+                  re.IGNORECASE)
 rcre = re.compile(r'failure reason:$', re.IGNORECASE)
 acre = re.compile(r'<(?P<addr>[^>]*)>:')
 

Index: SimpleMatch.py
===================================================================
RCS file: /cvsroot/mailman/mailman/Mailman/Bouncers/SimpleMatch.py,v
retrieving revision 2.10
retrieving revision 2.10.2.1
diff -u -d -r2.10 -r2.10.2.1
--- SimpleMatch.py      2 Dec 2002 14:23:42 -0000       2.10
+++ SimpleMatch.py      31 Mar 2003 21:49:40 -0000      2.10.2.1
@@ -1,4 +1,4 @@
-# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2003 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
@@ -70,6 +70,10 @@
     (_c('Undeliverable Address:\s*(?P<addr>.*)$'),
      _c('Original message attached'),
      _c('Undeliverable Address:\s*(?P<addr>.*)$')),
+    # Another demon.co.uk format
+    (_c('This message was created automatically by mail delivery'),
+     _c('^---- START OF RETURNED MESSAGE ----'),
+     _c("addressed to '(?P<addr>[^']*)'")),
     # Next one goes here...
     ]
 



_______________________________________________
Mailman-checkins mailing list
[EMAIL PROTECTED]
http://mail.python.org/mailman/listinfo/mailman-checkins

Reply via email to