Here's some ideas on the Mail Engine, for your comments.

At the moment, you can configure a set of processors, each with a list
of mailets. 
Each mailet config is, in effect an if..then: if (matcher) then
(mailet).
There is only one class of processor (Linear Processor). It checks for
recipients of a Mail that match the matcher. A mail with the matching
recipients is passed to the mailet. (If there are non-matching
recipients, a duplicate Mail with them drops through to the next
matcher) (Matchers such as SubjectInFakeDomain, ir they match, respond
with all recipients.)
A mailet passes a Mail to another processor by changing the state of the
Mail.

I was simply going to formalize the current structure using the new
Avalon Interfaces of Stage and Pipeline. But thayt lead me on to a few
questions about how best to do this processing. Partly reflecting
comments on the list over the last few months. 

How about:
1) if..then..else stages?
2) boolean matching criteria, e.g. if (matcher1) && (matcher2) then
mailet?
3) Would it be useful to have more explicit processors, a bit like a
Linux 2.2 firewall system, e.g. incoming, forwarding, outgoing? 
4) Would it then make sense to have matchers that return boolean, e.g.
for SenderOnSpamBlackList, with an alternative class of processor that
uses them?
5) There was a suggestion, I think from Peter, that it might be more
efficient to split each Mail by recipient early, then process each
single-recipient Mail seperately.  

Comments? Requests? WIsh lists? Offers of code?

Charles


------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Archives:  <http://www.mail-archive.com/james%40list.working-dogs.com/>
Problems?:           [EMAIL PROTECTED]

Reply via email to