Exemplo n.º 1
0
        public string ReadUntil(string text)
        {
            string data = _tcpConnection.ReadUntil(text);

            _conversation += data;
            return(data);
        }
Exemplo n.º 2
0
        public bool Close()
        {
            _tcpConnection.Send("A14 CLOSE\r\n");
            string result = _tcpConnection.ReadUntil(new List <string>()
            {
                "A14 BAD", "A14 OK"
            });

            if (result.Contains("A14 BAD"))
            {
                return(false);
            }
            if (result.Contains("A14 OK"))
            {
                return(true);
            }

            Assert.Fail(string.Format("IMAPClientSimulator.Close() - Expected BAD/OK, received: \"{0}\"", result));
            return(false);
        }
Exemplo n.º 3
0
        public bool ConnectAndLogon(string username, string password, out string errorMessage)
        {
            errorMessage = "";
            if (!Connect())
            {
                return(false);
            }


            if (!ReceiveBanner(out errorMessage))
            {
                return(false);
            }

            _tcpConnection.Send("USER " + username + "\r\n");

            errorMessage = _tcpConnection.ReadUntil("+OK Send your password");
            if (!errorMessage.StartsWith("+OK"))
            {
                return(false);
            }

            _tcpConnection.Send("PASS " + password + "\r\n");
            errorMessage = _tcpConnection.ReadUntil(new List <string> {
                "+OK", "-ERR"
            });

            return(errorMessage.StartsWith("+OK"));
        }
Exemplo n.º 4
0
        public void TestPOP3DownloadOfLargeMessage()
        {
            Send100MBMessage();

             Pop3ClientSimulator.AssertMessageCount("*****@*****.**", "test", 1);

             TcpConnection socket = new TcpConnection();
             socket.Connect(110);

             // Receive welcome message.
             socket.Receive();

             socket.Send("USER " + "*****@*****.**" + "\r\n");
             socket.ReadUntil("+OK");

             socket.Send("PASS " + "test" + "\r\n");
             socket.ReadUntil("+OK");

             socket.Send("RETR 1\r\n");

             var endOfResponseSB = new StringBuilder();

             string endOfResponse = "";
             while (endOfResponse.IndexOf("\r\n.\r\n") < 0)
             {
            if (endOfResponse.IndexOf("-ERR no such message") >= 0)
            {
               socket.Disconnect();
               Assert.Fail("Nope");
            }

            endOfResponseSB.Append(socket.Receive());

            if (endOfResponseSB.Length > 100)
               endOfResponseSB.Remove(0, endOfResponseSB.Length - 100);

            endOfResponse = endOfResponseSB.ToString();
             }

             socket.Send("DELE 1\r\n");
             socket.ReadUntil("+OK");

             socket.Send("QUIT\r\n");
             socket.ReadUntil("+OK");

             socket.Disconnect();
        }
Exemplo n.º 5
0
        public void TestSendToTooManyRecipients()
        {
            hMailServer.Accounts accounts = _domain.Accounts;
             SingletonProvider<TestSetup>.Instance.AddAccount(accounts, string.Format("*****@*****.**"), "test");

             var sock = new TcpConnection();
             sock.Connect(25);
             sock.ReadUntil("\r\n");
             string result;
             sock.Send("EHLO test.com\r\n");
             result = sock.ReadUntil("\r\n");
             Assert.IsTrue(result.StartsWith("250"));
             sock.Send("MAIL FROM: [email protected]\r\n");
             result = sock.ReadUntil("\r\n");
             Assert.IsTrue(result.StartsWith("250"));

             const int recipientCount = 51000;

             for (int i = 1; i <= recipientCount; i++)
             {
            string address = string.Format("test{0}@gmail.com", i);

            sock.Send(string.Format("RCPT TO: <{0}>\r\n", address));
            result = sock.ReadUntil("\r\n");
            if (i <= 50000)
            {
               Assert.IsTrue(result.StartsWith("250"));
            }
            else
            {
               Assert.IsFalse(result.StartsWith("250"));
            }

            if (i % 100 == 0)
            {
               TestTracer.WriteTraceInfo("{0}/{1}", i, recipientCount);
            }

             }
        }