CREDITS

Jim Niemira wrote the original C module and some quick and dirty python to use it. Stuart D. Gathman took that kludge and added threading and context objects to it, wrote a proper OO wrapper (Milter.py) that handles attachments, did lots of testing, packaged it with distutils, and generally transformed it from a quick hack to a real, usable Python extension.

Other contributors (in random order):

Christian Hafner
for the pymilter mascot image of Maxwell's daemon
Stephen Figgins
for reporting problems building with sendmail-8.12, and when building milter.so for the first time.
Dave MacQuigg
for noticing that smfi_insheader wasn't supported, and creating a template to help first time pymilter users create their own milter.
Terence Way
for providing a Python port of SPF
Scott Kitterman
for doing lots of testing and debugging of SPF against draft standard, and for putting up a web page that validates SPF records using spf.py
Alexander Kourakos
for plugging several memory leaks
George Graf at Vienna University of Economics and Business Administration
for handling None passed to setreply and chgheader.
Deron Meranda
for IPv6 patches
Jason Erikson
for handling NULL hostaddr in connect callback.
John Draper
for porting Python milter to OpenBSD, and starting to work on tutorials then pointing out that it would be easier to just write the MTA in Python.
Eric S. Johansson
for helpful design discussions while working on camram
Alex Savguira
for finding bugs with international headers and suggesting the scan_zip option.
Business Management Systems
for hosting the website, and providing paying clients who need milter service so I can work on it as part of my day job.
If I have left anybody out, send me a reminder: stuart@gathman.org