/// <summary>Default Logger</summary>
		//private static ILog log = LogManager.GetLogger( typeof( SMTPContext ) );
		
		/// <summary>Logs all IO.  Seperate from normal Logger.</summary>
		//private static ILog ioLog = LogManager.GetLogger( "IO." + typeof( SMTPContext ) );
				
		#endregion
		
		#region Constructors
		
		/// <summary>
		/// Initialize this context for a given socket connection.
		/// </summary>
		public SMTPContext( long connectionId, Socket socket )
		{
			//if( log.IsDebugEnabled ) log.Debug( String.Format( "Connection {0}: New connection from client {1}", connectionId, socket.RemoteEndPoint ) );
			
			this.connectionId = connectionId;
			this.lastCommand = -1;
			this.socket = socket;
			message = new SMTPMessage();
			
			// Set the encoding to ASCII.  
			encoding = Encoding.ASCII;
			
			// Initialize the input buffer
			inputBuffer = new StringBuilder();
		}
 public MessageEventArgs(SMTPMessage message)
 {
     this.Message = message;
 }
		/// <summary>
		/// Resets this context for a new message
		/// </summary>
		public void Reset()
		{
			//if( log.IsDebugEnabled ) log.Debug( String.Format( "Connection {0}: Reset" , connectionId ) );
			message = new SMTPMessage();
			lastCommand = SMTPProcessor.COMMAND_HELO;
		}
		/// <summary>
		/// Addes the message to the in memory queue.
		/// </summary>
		/// <param name='message'>The message to queue.</param>
		public virtual bool SpoolMessage(SMTPMessage message)
		{
			queue.Enqueue( message );
			return true;
		}