summaryrefslogtreecommitdiff
path: root/Mailman/Bouncers/BouncerAPI.py
Commit message (Collapse)AuthorAgeFilesLines
* Bite the bullet: rename the Mailman package to mailman.Barry Warsaw2008-02-271-64/+0
|
* Tweak copyright years.Barry Warsaw2008-02-071-1/+1
|
* Update copyright years.bwarsaw2007-01-191-1/+1
|
* - Convert all logging to Python's standard logging module. Get rid of allbwarsaw2006-04-171-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | traces of our crufty old Syslog. Most of this work was purely mechanical, except for: 1) Initializing the loggers. For this, there's a new module Mailman/loginit.py (yes all modules from now on will use PEP 8 names). We can't call this 'logging.py' because that will interfere with importing the stdlib module of the same name (can you say Python 2.5 and absolute imports?). If you want to write log messages both to the log file and to stderr, pass True to loginit.initialize(). This will turn on propagation of log messages to the parent 'mailman' logger, which is set up to print to stderr. This is how bin/qrunner works when not running as a subprocess of mailmanctl. 2) The driver script. I had to untwist the StampedLogger stuff and implement differently printing exceptions and such to log/error because standard logging objects don't have a write() method. So we write to a cStringIO and then pass that to the logger. 3) SMTPDirect.py because of the configurability of the log messages. This required changing SafeDict into a dict subclass (which is better than using UserDicts anyway -- yay Python 2.3!). It's probably still possible to flummox things up if you change the name of the loggers in the SMTP_LOG_* variables in mm_cfg.py. However, the worst you can do is cause output to go to stderr and not go to a log file. Note too that all entry points into the Mailman system must call Mailman.loginit.initialize() or the log output will go to stderr (which may occasionally be what you want). Currently all CGIs and qrunners should be working properly. I wish I could have tested all code paths that touch the logger, but that's infeasible. I have tested this, but it's possible that there were some mistakes in the translation. - Mailman.Bouncers.BounceAPI.Stop is a singleton, but not a class instance any more. - True/False code cleanup, PEP 8 import restructuring, whitespace normalization, and copyright year updates, as appropriate.
* Changed BouncerAPI.py to return Stop from a Bouncer and changedmsapiro2006-03-011-7/+5
| | | | | | BounceRunner.py to discard the bounce when Stop returned. Changed DSN.py to recognize Action: headers with comments. Changed Qmail.py to recognize an observed different starting string.
* FSF office has moved. chdcking in for MAIN branch.tkikuchi2005-08-271-1/+1
|
* ScanMessages(): Move the pipeline list to a module global, since I'mbwarsaw2002-12-021-18/+21
| | | | going to re-use it in a new test script.
* ScanMessages(): Added the Exchange (MS Exchange) recognizer.bwarsaw2002-10-181-3/+4
| | | | Also, whitespace normalization.
* ScanMessage(): This is an internal API change to make life much easierbwarsaw2002-03-261-59/+7
| | | | | | | | | | for the BounceRunner. Instead of actually registering the bounces here, it simply returns the list of addresses that have matched. It returns an empty list if none of the bounce detectors found any addresses. I'm also ripping out the test code. The unit test suite is more appropriate.
* Update copyright years.bwarsaw2002-03-161-1/+1
|
* ScanMessages(): Provide the name of the module being processed in thebwarsaw2002-03-091-1/+6
| | | | syslog error message.
* ScanMessages(): Call registerBounce() now to register a bounce. Webwarsaw2001-12-271-1/+1
| | | | | still don't implement weighted scoring, but we could if we improved the bounce detection framework.
* Add a useful comment about what the Stop is for.bwarsaw2001-10-091-0/+4
|
* Convert from mimelib to email.bwarsaw2001-10-011-5/+3
| | | | | Also, use cStringIO directly instead of our own hack-around StringIO module.
* Stop: a unique global value that bounce detectors can return in orderbwarsaw2001-08-291-0/+6
| | | | | | to stop processing immediately. This in effect provides for the recognition of temporary problem bounce messages which shouldn't RegisterBounce(), but /should/ discard the message.
* ScanMessages(): Added SimpleWarning and LLNL modules.bwarsaw2001-08-041-0/+2
|
* Better syslog() calling conventions.bwarsaw2001-06-271-1/+1
|
* ScanMessages(): Use a better way to runtime import the module and callbwarsaw2001-05-011-4/+5
| | | | | its process() function. This doesn't require three nested getattr() calls.
* Added some commented out code, which aids in debugging.bwarsaw2001-02-281-0/+3
|
* Conversion to mimelib.bwarsaw2001-02-151-14/+12
| | | | | | | | ScanMessages(): Remove Smail detector as this is now folded into the SimpleMatch detector. Remove the Catchall detector (should be covered by other detectors). Add the Yale detector. __main__(): Internationalize the printing of the module docstring.
* Three new bounce detectors:bwarsaw2000-09-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | - GroupWise.py which detects (I believe) Novell's GroupWise Internet Agent 5.5.3.1 and something called NTMail v4.30.0012 - SMTP32.py which detects something that claims in its X-Mailer: header to be "<SMTP32 vXXXXXX> where the X's are various version numbers. I've actually gotten a few bounces from three totally different domains with this header. I have no idea what it actually is. - SimpleMatch.py which detects a wide variety of simple matches of the form: ...a bunch of lines --- some start delimiter --- ...a bunch of lines some lines that look like they contain an email address ...maybe more bunches of lines --- some end delimiter --- There may actually be overlap between SimpleMatcher and other matches, I don't know. There's definitely overlap between SimpleMatcher and Catchall, the latter of which can probably go away eventually.
* ScanMessages(): Added Compuserve and Microsoft bounce detectors.bwarsaw2000-09-091-0/+2
|
* ScanMessages(): syslog message should read "Bouncer exception..."bwarsaw2000-07-211-1/+1
|
* ScanMessages(): Watch out for exceptions in RegisterBounce().bwarsaw2000-06-271-2/+13
|
* Netscape.py: Detects what appears to be Netscape Messaging Server 3.6bwarsaw2000-06-051-10/+9
| | | | | | | | | | | | | | bounces. These look like DSN mime messages, but don't contain -Recipient: headers. :( Caiwireless, Catchall, DSN, Exim, Postfix, Qmail, Smail, Yahoo: Changed process() API to take just the message object, since the MailList object isn't really required. Modified Catchall to use mm_cfg.DEFAULT_HOST_NAME in the one place where mlist.host_name was used. This module's deprecated anyway so it shouldn't matter much. BouncerAPI.py: Use the new bouncer.process() API. Also improve the unit testing code a bit.
* ScanMessages(): XFailedRecip => Exim.bwarsaw2000-04-101-1/+1
|
* ScanMessages(): Added XFailedRecip bounce detector.bwarsaw2000-04-091-0/+1
|
* Update the copyright lines to include the years 1999 & 2000.bwarsaw2000-03-211-1/+1
|
* ScanMessages(): Added new Smail detector.bwarsaw2000-02-051-0/+1
|
* test harness can take a list of file namesbwarsaw1999-12-101-8/+10
|
* Infrastructure for extensible bounce parsers, modeled after deliverybwarsaw1999-12-091-0/+83
pipeline architecture in Mailman/Handlers/HandlersAPI.py, but with a slightly different interface. This module is also written so that it can be used (moderately easily) as a bounce message testing harness.