Simple! Thanks. That does the trick. Now I need to send the postmaster of the site generating the broken headers an email letting them know of the problem. Do you think this change in Netscape.py will be made permanently for future releases of Mailman? Kambiz "Barry A. Warsaw" wrote:
"KA" == Kambiz Aghaiepour <kambiz@colltech.com> writes:
KA> Actually, I've been able to track this down to a problem in KA> the python library mimetools.py. The message that causes KA> problems has a header as such:
| Content-Type: multipart/report; report-type=delivery-status | boundary="-------=_2EF51FF1.3FFF45E0"
KA> And if you notice, the report-type value is not terminated KA> with a ';' character. As a result, the value gets set to:
I'd call this a bug in the Netscape.py bounce detector, not in mimetools.py. The reason is that your message is not compliant with the MIME RFC 1341, which requires the semi-colon separator between parameters. It is correct that rfc822.Message.getparam('boundary') returns None in this case.
What's broken is that Netscape.py should make sure the boundary is not None before it tries to use pass it to mimetools.
Here's a patch against Mailman 2.0.1. -Barry
-------------------- snip snip -------------------- Index: Netscape.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Bouncers/Netscape.py,v retrieving revision 1.5 diff -u -r1.5 Netscape.py --- Netscape.py 2000/06/20 05:40:36 1.5 +++ Netscape.py 2001/02/20 23:23:06 @@ -51,6 +51,8 @@ if msg.getmaintype() <> 'multipart': return None boundary = msg.getparam('boundary') + if boundary is None: + return None msg.fp.seek(0) mfile = multifile.MultiFile(msg.fp) mfile.push(boundary)
-- \o__O o -=< Kambiz Aghaiepour - (919)593-1964 >=- o o \_ /|\ -=< Senior Consultant - The Collective >=- //\ //\ |\ |\ -=< mailto:kambiz@collectivetech.com >=- // // / / |/ -=< http://www.collectivetech.com/ >=- |\ ||