public string ReadUntil(string text) { string data = _tcpConnection.ReadUntil(text); _conversation += data; return(data); }
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); }
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")); }
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(); }
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); } } }