public void TreatRecipientAsExternalDomainPermitted() { int smtpServerPort = TestSetup.GetNextFreePort(); Route route = SMTPClientTests.AddRoutePointingAtLocalhost(1, smtpServerPort, false); route.TreatRecipientAsLocalDomain = false; route.Save(); SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.AllowDeliveryFromRemoteToRemote = true; range.RequireSMTPAuthExternalToExternal = false; range.Save(); var deliveryResults = new Dictionary <string, int>(); deliveryResults["*****@*****.**"] = 250; using (var server = new SMTPServerSimulator(1, smtpServerPort)) { server.AddRecipientResult(deliveryResults); server.StartListen(); var oSMTP = new SMTPClientSimulator(); string result; CustomAssert.IsTrue(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1", out result)); server.WaitForCompletion(); server.MessageData.Contains("Mail 1"); } }
public void TestBlockingDeliveries() { SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthLocalToLocal = false; range.RequireSMTPAuthLocalToExternal = false; range.RequireSMTPAuthExternalToLocal = false; range.RequireSMTPAuthExternalToExternal = false; range.AllowDeliveryFromLocalToLocal = false; range.AllowDeliveryFromLocalToRemote = false; range.AllowDeliveryFromRemoteToLocal = false; range.AllowDeliveryFromRemoteToRemote = false; range.Save(); Account account1 = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSMTP = new SMTPClientSimulator(); string result1, result2, result3, result4; CustomAssert.IsFalse(oSMTP.Send(account1.Address, account1.Address, "Mail 1", "Mail 1", out result1)); CustomAssert.IsFalse(oSMTP.Send(account1.Address, "*****@*****.**", "Mail 1", "Mail 1", out result2)); CustomAssert.IsFalse(oSMTP.Send("*****@*****.**", account1.Address, "Mail 1", "Mail 1", out result3)); CustomAssert.IsFalse(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1", out result4)); CustomAssert.IsTrue(result1.Contains("550 Delivery is not allowed to this address.")); CustomAssert.IsTrue(result2.Contains("550 Delivery is not allowed to this address.")); CustomAssert.IsTrue(result3.Contains("550 Delivery is not allowed to this address.")); CustomAssert.IsTrue(result4.Contains("550 Delivery is not allowed to this address.")); }
public void TestSenderAsLocalDomainSendToLocalAccountPass() { int smtpServerPort = TestSetup.GetNextFreePort(); Route route = SMTPClientTests.AddRoutePointingAtLocalhost(1, smtpServerPort, false); route.TreatSenderAsLocalDomain = true; route.Save(); SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthLocalToLocal = false; range.Save(); Account account1 = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSMTP = new SMTPClientSimulator(); string result; CustomAssert.IsTrue(oSMTP.Send("*****@*****.**", account1.Address, "Mail 1", "Mail 1", out result)); string text = POP3ClientSimulator.AssertGetFirstMessageText(account1.Address, "test"); CustomAssert.IsTrue(text.Contains("Mail 1")); }
public void TestSendExternalToExternalPermitted() { SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthExternalToExternal = false; range.Save(); // Set up a server listening on port 250 which accepts email for [email protected] var deliveryResults = new Dictionary <string, int>(); deliveryResults["*****@*****.**"] = 250; int smtpServerPort = TestSetup.GetNextFreePort(); using (var server = new SmtpServerSimulator(1, smtpServerPort)) { server.AddRecipientResult(deliveryResults); server.StartListen(); Route route = TestSetup.AddRoutePointingAtLocalhost(1, smtpServerPort, false, eConnectionSecurity.eCSNone); var smtpClientSimulator = new SmtpClientSimulator(); smtpClientSimulator.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Test message"); // This should now be processed via the rule -> route -> external server we've set up. server.WaitForCompletion(); Assert.IsTrue(server.MessageData.Contains("Test message")); } }
public void TestSaveValidIPRange() { Application app = SingletonProvider <TestSetup> .Instance.GetApp(); SecurityRange range = app.Settings.SecurityRanges.Add(); range.Name = "Test"; range.LowerIP = "0.0.0.0"; range.UpperIP = "0.0.0.1"; range.Save(); }
public void TestSaveInvalidIPRange() { Application app = SingletonProvider <TestSetup> .Instance.GetApp(); SecurityRange range = app.Settings.SecurityRanges.Add(); range.Name = "Test"; range.LowerIP = "1.1.1.1"; range.UpperIP = "0.0.0.0"; var ex = Assert.Throws <COMException>(() => range.Save()); StringAssert.Contains("The lower IP address must be lower or the same as the upper IP address.", ex.Message); }
public void TestSendExternalToExternalNotPermitted_ErrorMessage() { SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.AllowDeliveryFromRemoteToRemote = false; range.Save(); var smtpClientSimulator = new SmtpClientSimulator(); var ex = Assert.Throws <DeliveryFailedException>(() => smtpClientSimulator.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Test message")); StringAssert.Contains("550 Delivery is not allowed to this address.", ex.Message, ex.Message); }
public void TestSMTPAuthLocalToExternal() { SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthLocalToExternal = true; range.Save(); Account account1 = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSMTP = new SMTPClientSimulator(); string result; CustomAssert.IsFalse(oSMTP.Send(account1.Address, "*****@*****.**", "Mail 1", "Mail 1", out result)); CustomAssert.IsTrue(result.Contains("SMTP authentication is required")); }
public void TestAntiVirusEnabled() { SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.EnableAntiVirus = true; range.Save(); Account account = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); SmtpClientSimulator.StaticSend("*****@*****.**", "*****@*****.**", "Test", "Test"); Pop3ClientSimulator.AssertMessageCount(account.Address, "test", 1); Message message = account.IMAPFolders.get_ItemByName("INBOX").Messages[0]; Assert.IsTrue(message.get_Flag(eMessageFlag.eMFVirusScan)); }
private void AddIPRange() { SecurityRange oRange = _ipRanges.Add(); oRange.LowerIP = "127.0.0.1"; oRange.UpperIP = "127.0.0.1"; oRange.Name = "My computer"; oRange.AllowDeliveryFromLocalToLocal = true; oRange.AllowDeliveryFromLocalToRemote = true; oRange.AllowDeliveryFromRemoteToLocal = true; oRange.AllowIMAPConnections = true; oRange.AllowPOP3Connections = true; oRange.AllowSMTPConnections = true; oRange.EnableSpamProtection = true; oRange.Save(); }
public void TestSMTPAuthExternalToLocal() { SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthExternalToLocal = true; range.Save(); Account account1 = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSMTP = new SMTPClientSimulator(); CustomAssert.IsFalse(oSMTP.Send("*****@*****.**", account1.Address, "Mail 1", "Mail 1")); range.RequireSMTPAuthExternalToLocal = false; range.Save(); CustomAssert.IsTrue(oSMTP.Send("*****@*****.**", account1.Address, "Mail 1", "Mail 1")); TestSetup.AssertRecipientsInDeliveryQueue(0); }
public void TestSenderAsLocalDomainSendToExternal() { int smtpServerPort = TestSetup.GetNextFreePort(); Route route = SMTPClientTests.AddRoutePointingAtLocalhost(1, smtpServerPort, false); route.TreatSenderAsLocalDomain = true; route.Save(); SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthLocalToExternal = true; range.Save(); var oSMTP = new SMTPClientSimulator(); string result; CustomAssert.IsFalse(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1", out result)); CustomAssert.IsTrue(result.Contains("530 SMTP authentication is required.")); }
public void TestSenderAsExternalDomainSendToLocalAccountFail() { int smtpServerPort = TestSetup.GetNextFreePort(); Route route = TestSetup.AddRoutePointingAtLocalhost(1, smtpServerPort, false); route.TreatSenderAsLocalDomain = false; route.Save(); SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthExternalToLocal = true; range.Save(); Account account1 = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); var smtpClientSimulator = new SmtpClientSimulator(); string result; CustomAsserts.Throws <DeliveryFailedException>(() => smtpClientSimulator.Send("*****@*****.**", account1.Address, "Mail 1", "Mail 1", out result)); }
public void TestSMTPAuthLocalToLocal() { SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthLocalToLocal = true; range.Save(); Account account1 = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test"); var smtpClientSimulator = new SmtpClientSimulator(); string result = ""; CustomAsserts.Throws <DeliveryFailedException>(() => smtpClientSimulator.Send(account1.Address, account1.Address, "Mail 1", "Mail 1", out result)); Assert.IsTrue(result.Contains("SMTP authentication is required.")); range.RequireSMTPAuthLocalToLocal = false; range.Save(); smtpClientSimulator.Send(account1.Address, account1.Address, "Mail 1", "Mail 1", out result); CustomAsserts.AssertRecipientsInDeliveryQueue(0); }
public void TestSMTPAuthExternalToExternal() { SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthExternalToExternal = true; range.Save(); var oSMTP = new SMTPClientSimulator(); string result; CustomAssert.IsFalse(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1", out result)); CustomAssert.IsTrue(result.Contains("SMTP authentication is required.")); range.RequireSMTPAuthExternalToExternal = false; range.AllowDeliveryFromRemoteToRemote = false; range.Save(); CustomAssert.IsFalse(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1", out result)); CustomAssert.IsTrue(result.Contains("550 Delivery is not allowed to this address.")); }
public void TestSMTPAuthExternalToRouteConfiguredAsLocal() { // First, make sure hMailServer requires auth. SecurityRange range = SingletonProvider <TestSetup> .Instance.GetApp().Settings.SecurityRanges.get_ItemByName("My computer"); range.RequireSMTPAuthExternalToExternal = true; range.RequireSMTPAuthLocalToExternal = true; range.Save(); int smtpServerPort = TestSetup.GetNextFreePort(); Route route = SMTPClientTests.AddRoutePointingAtLocalhost(1, smtpServerPort, false); route.TreatRecipientAsLocalDomain = true; route.TreatSenderAsLocalDomain = true; route.Save(); // Set up the simulating server to listen. var deliveryResults = new Dictionary <string, int>(); deliveryResults["*****@*****.**"] = 250; using (var server = new SMTPServerSimulator(1, smtpServerPort)) { server.AddRecipientResult(deliveryResults); server.StartListen(); // Make sure we can't send to this route without using smtp auth. var oSMTP = new SMTPClientSimulator(); CustomAssert.IsTrue(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1")); server.WaitForCompletion(); CustomAssert.IsTrue(server.MessageData.Contains("Mail 1"), server.MessageData); } }