Previous: Scheme MDA Filters, Up: MDA Scripting [Contents][Index]
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