[Mimedefang] Using a db for subject lines to block

Cormack, Ken Ken.Cormack at roadway.com
Mon Jun 20 23:15:10 EDT 2005


> And Ken's code could pick out individual words from the subject and
> find them in the database.  I bet you _could_ do that with Sendmail
> rulesets, but I shudder to imagine what they'd look like.

The old sendmail rule would do the same thing (whole subjects, or keywords.)

As far as sendmail ruleset syntax goes, actually, David, it's really not
that bad at all - probably the simplest sendmail ruleset you'll likely see
anywhere.  What appears below is a later version of the sendmail rule than
what most of you have seen before, on this list.  It is the current version
of the rule I've been using, from which I want to get away from by using
MIMEDefang.  This version consolidates the two lists I used to use in the
older version, into one...

	LOCAL_RULESETS
	F{Subjects} -o /etc/mail/subjects
	HSubject:[TAB]$>CheckSubject

	SCheckSubject
	# do a full subject match scan
	R$={Subjects}$* $: REJECTSUBJECT

	# if no hits, re-scan for substrings
	R$* $={Subjects} $*[TAB]$: REJECTSUBJECT

	R$* REJECTSUBJECT $*[TAB]$#error $: "553 Access Denied - MSG may
contain SPAM/WORM/VIRUS/HOAX."

The main reason I wanted to move the rules to MIMEDefang are these...
1.	Updating the original rule required restarting sendmail with a kill
-HUP, in order to re-load the array of subjects.  Whereas, like access.db,
the database can be rebuilt on-the-fly with no sendmail restart needed.
2.	In the old rule, the entire array populated from the file would
remain memory resident, and would get bigger in memory and slow to scan
through, as the file got bigger over time.
3.	Perl is a lot easier to read than sendmail syntax - far more people
know it and can support it, than sendmail syntax.

Ken



More information about the MIMEDefang mailing list