#### 3.12.5.3 Python MDA Filters ¶

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

    script {
      pattern "~/.maidag.py";
    }

instructs `mda` to use the 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