Mark Sapiro said the following on 6/30/2005 1:29 AM: >Something's strange here. The 2.1.5 distribution scripts/confirm only >has 62 lines and there are only 2 sys.exit() calls and they are both >"sys.exit(1)". > >In fact, "grep -ir mailexits *" doesn't find anything anywhere in the >Mailman 2.1.5 distribution. > >If this Mailman is somebody's package, I think you need to contact the >packager. > > Nope. I install from source, with the htdig/archiver patches. My confirm script is 89 lines long (with comments).
>That said, I think the actual syntax error is the final period in >'MailExits.mailexits.EX_NOUSER.'. > > Thanks--removing that period just after "NOUSER" fixes the problem. :) Below is the confirm script, for perusal. Thanks! Best, --Glenn $ cat /usr/local/mailman/scripts/confirm # -*- python -*- # # Copyright (C) 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. """Simple confirm via VERP-ish sender. Called by the wrapper, stdin is the mail message, and argv[1] is the name of the target mailing list. Errors are redirected to logs/errors. """ # Set the default exit status to be used with the following # variable. This is the value which will be used in the event of # our not even being able to import modules and do things in a # controlled way. # The installed default is 75 = MailExits.mailexits.EX_TEMPFAIL # This should tell Sendmail to keep keep the mail locally and # try again. This should give us time to try and fix the gross # installation problem without losing or rejecting all the mail # which is arriving. DEFAULT_EXIT_STATUS = 75 # If we cannot import sys then we aren't going to control what # sendmail does with the mail import sys try: import paths from Mailman import MailExits from Mailman import mm_cfg DEFAULT_EXIT_STATUS = mm_cfg.DEFAULT_MAILER_EXIT_STATUS from Mailman.Logging.Utils import LogStdErr LogStdErr('error', 'confirm', tee_to_real_stderr=0) import traceback try: from Mailman import Utils from Mailman.i18n import _ from Mailman.Queue.sbcache import get_switchboard def main(): try: listname = sys.argv[1] except IndexError: print >> sys.stderr, _('got no listname.') sys.exit(MailExits.mailexits.EX_TEMPFAIL) # Make sure the list exists if not Utils.list_exists(listname): print >> sys.stderr, _('list not found: %(listname)s') sys.exit(MailExits.mailexits.EX_NOUSER) # Immediately queue the message for the bounce/cmd qrunner to process. # The advantage to this approach is that messages should never get lost -- # some MTAs have a hard limit to the time a filter prog can run. Postfix # is a good example; if the limit is hit, the proc is SIGKILL'd giving us # no chance to save the message. cmdq = get_switchboard(mm_cfg.CMDQUEUE_DIR) cmdq.enqueue(sys.stdin.read(), listname=listname, toconfirm=1, _plaintext=1) if __name__ == '__main__': main() except SystemExit: raise except StandardError: sys.stderr.write("unexpected error handling: %s" % str(sys.argv)) traceback.print_exc(None, sys.stderr) sys.exit(DEFAULT_EXIT_STATUS) except SystemExit: # we do not want to catch SystemExits raise except StandardError: # But for all others take the default exit status sys.exit(DEFAULT_EXIT_STATUS) -- "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." ~Benjamin Franklin, Historical Review of Pennsylvania, 1759 ------------------------------------------------------ Mailman-Users mailing list Mailman-Users@python.org http://mail.python.org/mailman/listinfo/mailman-users Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/ Unsubscribe: http://mail.python.org/mailman/options/mailman-users/archive%40jab.org Security Policy: http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq01.027.htp