Example #1
0
        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>>>>");
        }