#!/usr/bin/python2.2 import sys import os import re import string import email from email import Encoders filters = {'application/msword': 'wordfilter', 'application/octet-stream': 'wordfilter', 'application/pdf': 'pdffilter', 'text/html' : 'htmlfilter' } #--------------------------------------------------------------------- def handle_mail(msg): msg.add_header('X-Filter','mailfilter v3 (c) ronsc@ronsc.de http://www.ronsc.de') for part in msg.walk(): payload=part.get_payload(None,1) type=part.get_type('text/plain'); if (filters.has_key(type)): filename=part.get_param("name") if (filename==None): filename="" part.__delitem__("content-transfer-encoding") part.__delitem__("content-id") part.__delitem__("content-description") part.__delitem__("content-disposition") part.__delitem__("content-type") part.add_header('Content-Type','text/plain',charset='iso-8859-1'); writer,reader=os.popen2("/etc/mailfilter/archive \""+filename+"\"") writer.write(payload); writer.close() archivefile=reader.read(); reader.close() new_payload="--- mailfilter::archiver -- (c) Ronald Schmidt ronsc@ronsc.de ---\n"+\ "\nUnter folgender Addresse koennen Sie sich den Anhang herunterladen:\n\n"+\ " "+archivefile+"\n Type: "+type writer,reader=os.popen2("/etc/mailfilter/"+filters[type]+" \""+filename+"\"") writer.write(payload); writer.close() str=reader.read(); reader.close() new_payload=new_payload+"\n\n"+str part.set_payload(new_payload); print msg #--------------------------------------------------------------------- # main # email einlesen msg = email.message_from_string(sys.stdin.read()) # mail bearbeiten handle_mail(msg) # vim:expandtab:ts=3