Previous: Scheme Maidag Filters, Up: Maidag Scripting


3.11.5.3 Python Maidag Filters

The file name of the Python mail filter is specified using ‘script’ configuration statement. For example, the following configuration statement:

     script "~/.maidag.py"

instructs `maidag' to use file `.maidag.py' in the recipient home directory as a Python filter.

A simple example of a mail filter written in Python:

     from mailutils import *
     import maidag
     import re
     
     msg = message.Message (maidag.message)
     hdr = msg.header
     
     try:
         if 'List-Post' in hdr and 'Received' in hdr \
            and hdr['Received'].find ('fencepost.gnu.org') != -1:
     
             # check envelope's sender address
             m = re.search (r'([\w\-]+)-bounces\+([\w]+)=.*',
                            msg.envelope.get_sender ())
             if m:
                 lbox = m.group (1)
                 user = m.group (2)
                 # open destination mailbox and append message
                 dst = mailbox.MailboxDefault ('~/Mail/%s' % lbox)
                 dst.open ('ac')
                 dst.append_message (msg)
                 dst.close ()
                 # set deleted flag so maidag will not deliver msg elsewhere
                 msg.attribute.set_deleted ()
     except Exception:
         pass