Пример #1
0
        public void TestSendToTooManyRecipients()
        {
            hMailServer.Accounts accounts = _domain.Accounts;
               hMailServer.Account senderAccount =
                    SingletonProvider<TestSetup>.Instance.AddAccount(accounts, string.Format("*****@*****.**"), "test");

               List<string> recipients = new List<string>();

               TcpSocket sock = new TcpSocket();
               sock.Connect(25);
               string result = sock.ReadUntil("\r\n");
               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"));

               Stopwatch watch = new Stopwatch();
               watch.Start();

               for (int i = 0; i < 51000; 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
              {
                 long perfor = watch.ElapsedMilliseconds;
                 Assert.IsFalse(result.StartsWith("250"));
              }
               }
        }
Пример #2
0
        public void TestPOP3DownloadOfLargeMessage()
        {
            TestLongSMTPDataSessionIncludingNewline();

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

            TcpSocket socket = new TcpSocket();
            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();
        }