You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by Norman Maurer <nm...@byteaction.de> on 2006/06/22 10:51:01 UTC

Re: Proposal: SMTPServer api and add more support for be pluggable ( like mailets)

No comments yet.. So i will start to working on this. I will create a
jira issue and post there some sample code so all better understand and
see what i want to do ;-) Just want to make clear someone is working on
this!

bye
Norman

Am Montag, den 19.06.2006, 07:42 +0200 schrieb Norman Maurer:
> Hi guys,
> 
> when working on the greylist handler again i get stuck on the momentan
> smtpserver api. It works with more then one handler per command, but how
> it works is not the best thing anyway. So i started to think about how
> we could make it more pluggable for developers to add new features of
> the needed commandHandlers.
> 
> After  a while i thought about qpsmtpd (http://smtpd.develooper.com/)
> and how it get managed there ( we used this in the past). And for me it
> seems a very good api!. So maybe we could do some simalour. So here is
> what i thought about in detail:
> 
> 
> This whould be the simplies configuration:
> 
> <handler command="RCPT" class="org.apache.james.smtpserver.rcpt.RcptCmdHandler">
>     <response_class ="org.org.apache.james.smtpserver.core.ResponseHandler">
> </handler>
> 
> Configuration with optinal filters:
> 
> <handler command="RCPT" class="org.apache.james.smtpserver.rcpt.RcptCmdHandler">
>     <filter_class ="org.apache.james.smtpserver.rcpt.GreylistHandler">
>     <filter_class ="org.apache.james.smtpserver.rcpt.MaxRcptHandler">
>         <maxRcpt> 2 </maxRcpt>
>     <filter_class ="org.apache.james.smtpserver.rcpt.TarpitHandler">
>         <tarpitRcptCount> 0 </tarpitRcptCount>
>         <tarpitSleepTime> 5000 </tarpitSleepTime>    
>     <response_class ="org.apache.james.smtpserver.core.ResponseHandler">
> </handler>
> 
> 
> And this is how it could work:
> 
> org.apache.james.smtpserver.rcpt.RcptCmdHandler:
> This class do exact the same thing it does yet. The only diffrence
> should be that it set the response string in the STATE_MAP and not write
> it by self or something simular.
> 
> org.apache.james.smtpserver.rcpt.GreylistHandler:
> 
> Check if no blocking responseString is allready set, if noone is set it
> get called. Otherwise it skip the handler.
> 
> 
> org.apache.james.smtpserver.rcpt.MaxRcptHandler:
> 
> See Above.
> 
> 
> org.apache.james.smtpserver.rcpt.TarpitHandler:
> 
> See Above.
> 
> org.apache.james.smtpserver.core.ResponseHandler:
> 
> This class get called as the last. It react based on the STATE_MAP. 
> 
> 
> All filter_classes should be extend an abstract class which over the
> needed core functions and the to implementate methods like the class
> CommandHandler allready offer.
> 
> 
> This is what i had in my mind last night. Any Feedback questions are
> very welcome.
> 
> bye
> Norman
> 
> Ps: The good think is if we add a hardcoded smtpHandlerChain like
> Stefano allready did for pop3Handler we could be change such thinks
> without break most configs.
> 
> 
> 
> 
> 
> 
> 
> 
>  
> 
>