public void TestRcptToSyntax() { Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSMTP = new SMTPClientSimulator(); oSMTP.Connect(); CustomAssert.IsTrue(oSMTP.Receive().StartsWith("220")); oSMTP.Send("HELO test\r\n"); CustomAssert.IsTrue(oSMTP.Receive().StartsWith("250")); // A few tests of invalid syntax. CustomAssert.IsTrue(oSMTP.SendAndReceive("MAIL FROM: <*****@*****.**>\r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("RCPT TO: [email protected]>\r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("RCPT TO: <[email protected]\r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("RCPT TO <[email protected]\r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("RCPT TO<[email protected]\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("RCPT TO: <*****@*****.**>\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("RCPT TO: [email protected]\r\n").StartsWith("250")); oSMTP.Disconnect(); }
public void TestTooManyInvalidCommandsHELO() { Settings settings = _settings; settings.DisconnectInvalidClients = true; settings.MaxNumberOfInvalidCommands = 3; var sim = new SMTPClientSimulator(); sim.Connect(); sim.Receive(); // banner sim.SendAndReceive("HELO\r\n"); sim.SendAndReceive("HELO\r\n"); sim.SendAndReceive("HELO\r\n"); sim.SendAndReceive("HELO\r\n"); var result = sim.SendAndReceive("HELO\r\n"); CustomAssert.IsTrue(result.Contains("Too many invalid commands"), result); }
public void TestMailFromSyntaxValidation() { Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSMTP = new SMTPClientSimulator(); oSMTP.Connect(); CustomAssert.IsTrue(oSMTP.Receive().StartsWith("220")); oSMTP.Send("HELO test\r\n"); CustomAssert.IsTrue(oSMTP.Receive().StartsWith("250")); // A few tests of invalid syntax. CustomAssert.IsFalse(oSMTP.SendAndReceive("MAIL FROM: <[email protected]\r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("MAIL FROM: [email protected]>\r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("MAIL FROM: < [email protected] \r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("MAIL FROM: < \r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("MAIL FROM: > \r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("MAIL FROM: <[email protected]\r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("MAIL FROM <*****@*****.**>\r\n").StartsWith("250")); CustomAssert.IsFalse(oSMTP.SendAndReceive("MAIL FROM [email protected]\r\n").StartsWith("250")); // Valid syntax, < and > CustomAssert.IsTrue(oSMTP.SendAndReceive("MAIL FROM: <*****@*****.**>\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("RSET\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("MAIL FROM: [email protected]\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("RSET\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("MAIL FROM: [email protected] \r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("RSET\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("MAIL FROM:[email protected]\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("RSET\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("MAIL FROM:<*****@*****.**>\r\n").StartsWith("250")); CustomAssert.IsTrue(oSMTP.SendAndReceive("RSET\r\n").StartsWith("250")); oSMTP.Disconnect(); }