> attached are notes for Norman

Below ...

        --- Noel

-------------------------------------------------------------------------

loop:
handler.call(session)
if (session.responseCode != 0) break;
endloop

while handler.call(session) != false handler = next();


interface CommandsHandler {
    Map getCommands();
}


MyHandler implements ConnectionHandler, CommandsHandler, MessageHandler {

        onConnection(...) { do onConnection processing }
        onMessage(...) { do onMessage processing }
        Map getCommands(...) {
                mailFromCmd = new CommandHandler() {
                        onCommand(...) {
                                do MAIL FROM processing
                        }
                }
                rcptCmd = new CommandHandler() {
                        onCommand(...) {
                                do RCPT TO processing
                        }
                }

                map.add("MAIL", mailFromCmd);
                map.add ("RCPT", rcptCmd);
                return map;
        }

}


NormanHeloFilter implements CommandHandler {
        onCommand(...) {
                if (session.getCurrentCommand() == "HELO") { do HELO processing}
                else if (session.getCurrentCommand() == "EHLO") { do slighly 
different
EHLO processing }
                else log ("This command handler does not IMPLEMENT " +
session.getCurrentCommand() + ".  Please fix.");
        }
}


SPFHandler implements CommandHandler, MessageHandler {
        onCommand(SMTPSession) { ...
session.getState().put("org.apache.james.jspf.header", ...); }
        onMessage(SMTPSession) { ... add header to message ... }
}


<handlerClain>

  <maxmessagesize>
  <verifyIdentity>

  <attribute name="maxmessagesize" value"0"/>
  <attribute name="heloEhloEnforcement" value="true"/>
  <attribute name="verifyIdentity" value="true" />

  <handler class="org.apache.james.smtpserver.SyntaxChecker"/>
  <handler.class="org.apache.james.smtpserver.rbldnschecker">
     <rblservers>
        <whitelist> query.bondedsender.org </whitelist>
        <blacklist> sbl-xbl.spamhaus.org </blacklist>
        <blacklist> list.dsbl.org </blacklist>
        <blacklist> dul.dnsbl.sorbs.net </blacklist>
        <blacklist> relays.ordb.org </blacklist>
     </rblservers>
  </handler>
  <handler class="de.norman.NormanHeloFilter" onCommand="HELO,EHLO"/>
  <handler class="org.apache.james.smtpserver.spfHandler" onCommand="MAIL">
     <attribute name="softfail" value="true"/>
  </handler>
  <handler class="org.apache.james.smtpserver.basecommands"/>
</handlerChain>




chainBuilder:

aHandler = class.newInstance();

if (aHandler instanceof ConnectionHandler) add to connection handler chain
if (aHandler instanceof MessageHandler) add to message handler chain
if (aHandler instanceof CommandsHandlers) {
        get commands
        loop through commands
        for each command, add to that command's handler chain
}
if (aHandler instance of CommandHandler) {
        get list of commands
        add handler to each chain
}


MyHandler implements ConnectionHandler, CommandHandlers {

        onConnection(...) { INIT THE SESSION }
        Map getCommands(...) { ... }
}


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to