[exim] Announcing: Exim-Python 4.60py1.

Top Page
Delete this message
Reply to this message
Author: David Wilson
Date:  
To: Exim Users List
CC: Exim Developers List
Subject: [exim] Announcing: Exim-Python 4.60py1.
Greetings!

I have merged my Exim-Python patch with the latest availalable version
of Exim, 4.60. Exim-Python is the name for an extension to Exim which
adds the ability to execute compiled Python functions and methods from
within Exim configuration file string expansions. Since Exim uses string
expansions heavily throughout its operation, this feature adds more
powerful control to an already very flexible mail server.

The patch, along with a prepatched tarball can be downloaded from:

    http://botanicus.net/dw/exim-python.php


I hope that you find interesting uses for this patch. Please send me
your configurations so that I can update the documentation with
interesting examples! If you find a bug, please report it to me offlist
and I will see what I can do.

Thanks,


David.


Why might I need the extension?
-------------------------------

Exim alone is an extremely powerful mail server, approaching as feature
complete as one can expect from any mail server software. It is also
fairly easy to extend Exim using native code, but to coding new features
in C may take an awful lot of time.

This extension allows you to prototype a new feature for Exim quickly
and easily. To say it is useful only as a prototyping tool would be
incorrect, indeed the performance of the extension and the code running
beneath it should suffice for all but the highest volume mail servers.


Futures
-------

I hope to become more active in developing this patch further. In
particular, I would shortly like to add the following abilities:

- Pass "key=value" lists in and out of Python functions, converted to
and from the Python dictionary type automatically.
- Make available a router, transport, authenticator, and lookup that
can execute Python code.
- [Possibly] provide a way to run a Python intepreter as a thread off
the main Exim process.
- Document guidelines for creation of Python resources, eg. database
connections, threads, and file descriptors.
- Reformat the patch to Exim coding standards.
- Produce documentation that is merged with the main Exim specification.