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

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