I'm stuck on the basic development cycle for "custom handlers".   Symptom is 
that it is remembering an early attempt and not loading the latest version of 
my handler.     Also, I'm now trying to use syslog (to post or to error) as a 
way to get/read/understand msg and msgdata -- is there a better way?

I have a list (dlms_1) that I want to use with no hint of mailman being 
invloved (no listnames, not "mailman").

At Mark Sapiro's recommendation, I've been looking at custom handler:
http://wiki.list.org/pages/viewpage.action?pageId=4030615

I've made a working directory within the mailman context:
/usr3/mailman/
    bin/
    Mailman/
        Handlers/
             (Custom__dlms_1.py goes here)
    custom/
         dlms_1/
             go                       #cp handler and run config_list
             custpipe__dlms_1.py      #set mlist.pipeline
             Custom__dlms_1.py        #where I'll do my work
    ...

Process:
1. Edit Custom__dlms_1.py.
2. Run "go"
3. Send email from MS outlook to dlms_1 list.
4. No response or posting, so check post and error logs
5. Nothing new in post, but erro log has
#-----------------------
  File "/usr3/mailman/Mailman/Queue/Runner.py", line 170, in _onefile
    keepqueued = self._dispose(mlist, msg, msgdata)
  File "/usr3/mailman/Mailman/Queue/IncomingRunner.py", line 130, in _dispose
    more = self._dopipeline(mlist, msg, msgdata, pipeline)
  File "/usr3/mailman/Mailman/Queue/IncomingRunner.py", line 153, in _dopipelin

    sys.modules[modname].process(mlist, msg, msgdata)
  File "/usr3/mailman/Mailman/Handlers/Custom__dlms_1.py", line 66, in process
AttributeError: 'str' object has no attribute 'append'

Feb 15 09:00:17 2012 (3662) SHUNTING: 1329325217.251622+f51327464d18dafebf2da57
ede3fbc086fd8fcc
#---------------------------
 
There is no line 66 in the current Custom_dlms_1.py.    
I did try several variations before trimming to the current skeleton.

#---go---
#=================================================
# Install handler
#=================================================
cp Custom__dlms_1.py /usr3/mailman/Mailman/Handlers

#=================================================
# Config for new pipe
#=================================================
/usr3/mailman/bin/config_list -i custpipe__dlms_1.py dlms_1

#---custpipe__dlms_1.py---
mlist.pipeline= [
    # These are the modules that do tasks common to all delivery paths.
    'SpamDetect',
    'Approve',
    'Replybot',
    'Moderate',
    'Hold',
    'MimeDel',
    'Scrubber',
    'Emergency',
    'Tagger',
    'CalcRecips',
    'AvoidDuplicates',
    'Cleanse',
    'Custom__dlms_1',    #<--- custom here
    'CleanseDKIM',
    'CookHeaders',
    # And now we send the message to the digest mbox file, and to the arch and
    # news queues.  Runners will provide further processing of the message,
    # specific to those delivery paths.
    'ToDigest',
    'ToArchive',
    'ToUsenet',
    # Now we'll do a few extra things specific to the member delivery
    # (outgoing) path, finally leaving the message in the outgoing queue.
    'AfterDelivery',
    'Acknowledge',
    'ToOutgoing',
    ]

#---Custom__dlms_1.py---
#I started with MyHandler, Decorate, and CookedHeaders as exemplars, but 
backtracked to this skeleton

import re

from Mailman import Utils
from Mailman import Errors
from Mailman.i18n import _
from Mailman.Handlers import Hold
from Mailman.Handlers import Moderate
from Mailman.Logging.Syslog import syslog


def process(mlist, msg, msgdata):
    syslog('post','msgdata=%s' % msgdata)

#-----------------------------------------------

Harry G. George
harry.g.geo...@boeing.com
425-717-7403 
------------------------------------------------------
Mailman-Users mailing list Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Reply via email to