--
On Tue, May 07, 2002 at 12:15:30AM -0700, Marc MERLIN wrote:
| On Mon, May 06, 2002 at 09:54:09AM -0700, Marc MERLIN wrote:
| > Actually, you get more options, as shown here:
| > http://marc.merlins.org/linux/exim/demo.txt
| >
| > You can find the code (source and pre-built debian package) here:
| > http://marc.merlins.org/linux/exim/sa.html
The code looks pretty good to me. It is quite readable, followable,
and well commented.
Could you extend it to handle subject mangling too? I found that
setting the subject mangling to ***SA:_HITS_*** and sorting on the
subject is rather nice for gauging the level of the scores in the spam
folder.
Hmm, I could replace the spamc command with my own program and do
other sorts of checks too (klez, etc) as long as my output looks like
it came from SA. I think I'll do this instead of using exiscan.
| The code worked so well, that I blocked my previous announcement since it
| contained a spam example and enough keywords to get the message flagged :-)
Yeah, it hit my junk folder too. I'm glad I found it before dropping
it in the circular file :-).
~~~
After reading it and thinking about exiscan too I have some comments
and ideas for Philip to consider. Much of the work of exiscan and
Marc's local_scan are duplicated and will need to be duplicated again
for other local_scan implementation. That isn't good design. Here
are my ideas. Please consider them and add them to the wishlist if
appropriate.
exim should provide an API for option gathering. (I know this is on
the wishlist already)
exim should provide a condition flag for calling local_scan rather
than each local_scan implementation checking it.
A function to convert the entire message into a RFC2822 stream would
be helpful. A fair amount of Marc's code deals with converting the
in-memory message to a stream to feed to spamc. exiscan does this
too.
Dynamic loading of local_scan. This would allow the various
local_scans to be packaged separately from exim itself and
configurable at runtime. I don't know how hard this is in C.
In fact, this would be nice for the various lookups and mailstore
formats too. Packages could provide a base exim with the rest as
separate add-on modules loadable at runtime.
A routine for reading specific headers back from a stream. Marc does
this to set the X-Spam: headers. Other local_scans might want to do
this too.
I'd also like to see a hook added for a filter that would be run after
accepting the message but before routing it. This facilitate
development of a program to clean up the junk too many messages
contain. For example legal notices, mailling list trailers (which are
duplicated in the List-* headers), virus-clean notices, and mailling
list subject munging could all be cleaned up before delivery to the
user. If this filter is applied before routing is done then the
filter could add flags to the message that would affect the routing of
it. This filter would be an external command that would operate in
the traditional UNIX sense of a filter.
-D
--
Like a gold ring in a pig's snout
is a beautiful woman who shows no discretion.
Proverbs 11:22
GnuPG key :
http://dman.ddts.net/~dman/public_key.gpg
--
[ Content of type application/pgp-signature deleted ]
--