TclMilter is a package for Tcl (written in C) that implements an interface to SendMail's Milter (Mail Filter) API for developing custom scripted message rewriting and spam filtering processes.
A thread-enabled Tcl build is required due to Milter's threading requirements. However, you can only run, configure, or register callbacks for a milter from the first thread/interpreter the package is loaded into.
If you need to be able to stop the milter from within Tcl, you can load the package in another thread to do so. Only the "milter stop" command will function in secondary threads.
This extension is provided under the GNU General Public License (GPL) (see the file "license.terms" for details).
Here are some key features of "TclMilter":
· The smfi_opensocket command is not provided, only milter main as an interface to smfi_main.
· The smfi_setconn, smfi_settimeout, smfi_setbacklog and smfi_setdbg commands, as well as settings normally provided through smfi_main are instead provided as milter configure options.
· The smfi_register command is provided as milter register; however, unlike libmilter it's possible to register and unregister callbacks at any time, rather than just once prior to calling main.
· There isn't a single data storage value for smfi_setpriv; rather, TclMilter's milter setpriv command uses a hash table so you can set individual, custom variables with data to associate with a context.
· The context provided to callbacks is not simply a pointer, but is an actual Tcl command that can be used to interact with the context.
What's New in This Release:
· The TEA support files were updated to version 3.6 and the configure script regenerated to fix configure errors under Linux.