private static void StartClient(object o) { Trace.WriteLine("<<<<Disconnected>>>>"); Socket _Socket = (Socket)o; _Socket.@Send(@"220 a183.ip8.netikka.fi ESMTP "); try { while (_Socket.Connected) { byte[] _buffer = _Socket.Receive(); string s = ASCIIEncoding.ASCII.GetString(_buffer); string[] ss = s.Trim('\n', '\r').Split(' '); Trace.WriteLine("<<<<<<<<<<received>>>>>>>>"); Trace.WriteLine(s); switch (ss[0]) { case "HELO": _Socket.Send(@"250 Hello. "); break; case "EHLO": _Socket.Send(@"250-hmailserver 250-SIZE 250 AUTH LOGIN "); break; case "MAIL": goto case "RCPT"; case "RCPT": _Socket.Send(@"250 OK "); break; case "DATA": _Socket.Send(@"354 OK, send. "); break; default: Match _Match = Regex.Match(s, @"\bhttps?://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]", RegexOptions.IgnoreCase); if (_Match.Success) { Trace.WriteLine("<<<<<<<<<<<<<<Downloading>>>>>>>>>>>>>" + s); WebClient _WebClient = new WebClient(); string data = _WebClient.DownloadString(_Match.Value); Trace.WriteLine(data); return; } break; } } } catch (SocketException) { } Trace.WriteLine("<<<<Disconnected>>>>"); }