示例#1
0
        public void Start()
        {
            if (!_socket.Connected)
            {
                return;
            }

            _reader = new StreamReader(_socket.Stream);
            _writer = new StreamWriter(_socket.Stream)
            {
                AutoFlush = true
            };

            _writer.WriteLine("220 localhost Server Ready");
            var isMessageBody = false;

            while (_socket.Connected)
            {
                var token = SmtpToken.FromLine(_reader.ReadLine(), isMessageBody);

                SmtpLog.Debug(token.Data);

                var handler = ProtocolHandlers.HandlerFor(token);
                if (handler.Handle(token, this) == ContinueProcessing.Stop)
                {
                    break;
                }

                isMessageBody = token.IsData && token.IsMessageBody;
            }
        }
示例#2
0
 public void WriteResponse(string data)
 {
     SmtpLog.Debug(data);
     _writer.WriteLine(data);
 }