GNU Mailutils Manual (split by node):   Section:   Chapter:FastBack: Programs   Up: Maidag Scripting   FastForward: Libraries   Contents: Table of ContentsIndex: Function Index

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