|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjava.lang.Thread
com.cometway.net.ESMTPReceiver
public class ESMTPReceiver
This class implements the ESMTP protocol for the server side. It will listen to a socket and await connections that talk the ESMTP/SMTP protocol.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class java.lang.Thread |
|---|
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
| Field Summary | |
|---|---|
protected java.util.Hashtable |
commandHash
|
protected java.lang.String |
data
|
protected boolean |
debug
|
protected java.util.Vector |
extendedCommands
|
protected java.util.Vector |
forwardPaths
|
protected java.lang.String |
greeting
|
protected boolean |
honestPeer
|
protected java.io.BufferedReader |
in
|
static java.lang.String[] |
kBasicCommands
|
static java.lang.String |
kCommandUnrecognized
|
static java.lang.String |
kCRLF
|
static java.lang.String |
kDefaultGreeting
|
protected static int |
kMail
|
protected static int |
kRcpt
|
protected static int |
kRset
|
static java.lang.String |
kSyntaxError
|
protected static java.net.InetAddress |
localHost
|
protected static java.lang.String |
localHostName
|
protected java.io.PrintWriter |
out
|
protected java.lang.String |
reversePath
|
protected boolean |
seenHelo
|
protected boolean |
seenMail
|
protected boolean |
seenRcpt
|
protected java.net.InetAddress |
sendingHost
|
protected java.net.Socket |
socket
|
protected int |
state
|
| Fields inherited from class java.lang.Thread |
|---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
| Constructor Summary | |
|---|---|
ESMTPReceiver()
this constructor is for using an instance of this class only as an ICommandParser. |
|
ESMTPReceiver(java.net.Socket socket)
|
|
| Method Summary | |
|---|---|
void |
addCommandParser(java.lang.String command,
ICommandParser parser)
addCommandParser adds an ICommandParser to extend the commands that it can parse by adding ICommandParsers for new commands. |
void |
addCommandParser(java.lang.String command,
ICommandParser parser,
boolean addExtended)
|
static boolean |
checkPath(java.lang.String path)
|
protected void |
close()
|
protected void |
debugPrint(java.lang.String line)
|
protected void |
deliverMessage()
deliverMessage(): method is gauranteed to be executed before state is cleared after a data command had been successfully accepted (but not necessarily responded to) |
void |
disconnect()
|
protected void |
errorPrint(java.lang.String line)
|
protected static java.lang.String |
fixForwardPath(java.lang.String path)
fixForwardPath: given a String representing a path, function attempts to prepare it for message delivery. |
protected static java.lang.String |
fixReversePath(java.lang.String path)
|
protected void |
initCommands()
|
boolean |
isHeader(java.lang.String line)
|
static void |
main(java.lang.String[] argv)
|
java.lang.String |
parseCommand(java.lang.String command)
parse: method parses a command represented as a String of tokens, returning a String response. |
protected java.lang.String |
parseData(java.util.Enumeration command)
|
protected java.lang.String |
parseEhlo(java.util.Enumeration command)
|
protected java.lang.String |
parseHelo(java.util.Enumeration command)
|
protected java.lang.String |
parseMail(java.lang.String commandString)
|
protected java.lang.String |
parseNonRFCMail(java.util.Enumeration command)
|
protected java.lang.String |
parseNonRFCRcpt(java.util.Enumeration command)
|
protected java.lang.String |
parseNoop(java.util.Enumeration command)
|
protected java.lang.String |
parseQuit(java.util.Enumeration command)
|
protected java.lang.String |
parseRcpt(java.lang.String commandString)
|
protected java.lang.String |
parseRset(java.util.Enumeration command)
|
protected java.lang.String |
parseVrfy(java.util.Enumeration command)
|
protected void |
prepareMessage()
prepareMessage() should occur before routeMessage() and deliverMessage() |
protected java.lang.String |
read()
|
protected void |
resetState()
|
protected void |
routeMessage()
|
void |
run()
|
void |
setDebug(boolean debug)
|
void |
setGreeting(java.lang.String greeting)
|
void |
setSocket(java.net.Socket socket)
|
static java.lang.String |
stripBrackets(java.lang.String path)
stripBrackets: given a path (possibly enclosed by angle brackets), method attempts to strip all enclosing brackets. |
protected void |
write(java.lang.String string)
|
| Methods inherited from class java.lang.Thread |
|---|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String kCRLF
public static final java.lang.String kDefaultGreeting
public static final java.lang.String kCommandUnrecognized
public static final java.lang.String kSyntaxError
public static final java.lang.String[] kBasicCommands
protected static final int kMail
protected static final int kRcpt
protected static final int kRset
protected java.net.Socket socket
protected java.io.BufferedReader in
protected java.io.PrintWriter out
protected java.util.Hashtable commandHash
protected java.util.Vector extendedCommands
protected java.lang.String greeting
protected boolean seenHelo
protected boolean seenMail
protected boolean seenRcpt
protected boolean honestPeer
protected int state
protected static java.lang.String localHostName
protected static java.net.InetAddress localHost
protected java.net.InetAddress sendingHost
protected java.lang.String reversePath
protected java.lang.String data
protected java.util.Vector forwardPaths
protected boolean debug
| Constructor Detail |
|---|
public ESMTPReceiver()
public ESMTPReceiver(java.net.Socket socket)
| Method Detail |
|---|
protected void initCommands()
public void setSocket(java.net.Socket socket)
public void setGreeting(java.lang.String greeting)
public void setDebug(boolean debug)
public void addCommandParser(java.lang.String command,
ICommandParser parser,
boolean addExtended)
public void addCommandParser(java.lang.String command,
ICommandParser parser)
ICommandParser
addCommandParser in interface ICommandParserpublic java.lang.String parseCommand(java.lang.String command)
ICommandParser
parseCommand in interface ICommandParserprotected void resetState()
protected java.lang.String parseData(java.util.Enumeration command)
protected java.lang.String parseEhlo(java.util.Enumeration command)
protected java.lang.String parseHelo(java.util.Enumeration command)
protected java.lang.String parseNonRFCMail(java.util.Enumeration command)
protected java.lang.String parseMail(java.lang.String commandString)
protected static java.lang.String fixReversePath(java.lang.String path)
protected java.lang.String parseNoop(java.util.Enumeration command)
protected java.lang.String parseQuit(java.util.Enumeration command)
protected java.lang.String parseNonRFCRcpt(java.util.Enumeration command)
protected java.lang.String parseRcpt(java.lang.String commandString)
protected static java.lang.String fixForwardPath(java.lang.String path)
public static boolean checkPath(java.lang.String path)
public static java.lang.String stripBrackets(java.lang.String path)
protected void deliverMessage()
protected void routeMessage()
protected void prepareMessage()
public boolean isHeader(java.lang.String line)
protected java.lang.String parseRset(java.util.Enumeration command)
protected java.lang.String parseVrfy(java.util.Enumeration command)
public void run()
run in interface java.lang.Runnablerun in class java.lang.Threadpublic void disconnect()
protected java.lang.String read()
protected void write(java.lang.String string)
protected void close()
protected void errorPrint(java.lang.String line)
protected void debugPrint(java.lang.String line)
public static void main(java.lang.String[] argv)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||