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