[Pymilter] other problems being chased

Eric S. Johansson esj at harvee.org
Fri Apr 23 15:22:31 EDT 2004


Stuart D. Gathman wrote:

> If you want to remove a specific recipient, call delrcpt() from eom().
> bms.py also has a del_recipient() that can be called earlier.  It just
> accumulates a list to remove in eom().  I have suggested adding
> basic tools like del_recipient() and add_header() (allows headers to
> be added before eom() - just queue 'em up and add later) to Milter.py,
> but have gotten strong resistence.  There seems to be a demand for
> a "bare bones" OO interface to libmilter.  So such features would
> go into an extended class derived from Milter.

that works for me.  I won't know who's to be deleted until I do my 
filtering deep within eom time.

> This system needs to be extended so that screeners can screen a subset
> of all mail users.  Our larger customers have departments whose legit
> mail differs quite a bit from each other - so having a screener screen only
> their own department would increase accuracy.  (Because other peoples mail
> that is not quarantined doesn't affect their dictionary - so it doesn't
> adapt to innocent mail unless they get the same kind of mail they are
> screening.)  However, the addition of SPF has greatly increased accuracy
> already.

I have that code already.  I will gladly share with you the scar tissue 
I've encountered in making it work.  In the "lump in the line" model, it 
was fairly easy to create filter specific IDs and associate them with 
either individual e-mail addresses or domains (or both).  Making milter 
work the right way for message replication appears to be relatively 
difficult.  the next trick is then using something I call delegation and 
merging.  The delegation assigns responsibility for spamtrap filtering 
to another party.  Merging takes delegation one step further and merges 
two or more accounts together making responsibility for sorting etc. the 
responsibility of one account.  they also have different implications 
when it comes to undoing the various bindings.  Merging is impossible to 
undo (think removing the chocolate from chocolate milk).  The best you 
can do is replicate the various filtering data sources into the 
different user accounts.  Delegations easier to undo because it merely 
undoes the spamtrap redirection.  The user still have their own double 
spend, white list and Bayesian databases.

To tell you choose, I'm not entirely happy with how the design/code 
evolved but it does map to how people work so it's probably going to 
take one more pass to make me more comfortable with the design.

As for SPF increasing accuracy I'm glad it is working for you but, I 
have one customer that is not using SPF because too many of the mailing 
lists and forwarding services were being inappropriately marked.  I have 
my doubts about SPF's long-term viability given that some of the bigger 
spammers are already creating SPF records for their zombie owned 
machines.  On the other hand, I know there are people that have doubts 
about what I'm doing.  :-)

---eric


<!DSPAM:FC18D1913E24611885886501>




More information about the Pymilter mailing list