public void ConfirmSingleReturnPathAfterAccountForward() { // Create a test account // Fetch the default domain Account oAccount1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); Account oAccount2 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); oAccount1.ForwardAddress = oAccount2.Address; oAccount1.ForwardEnabled = true; oAccount1.Save(); // Send a message... var oSMTP = new SMTPClientSimulator(); oSMTP.Send("*****@*****.**", oAccount1.Address, "Test message", "This is the body"); TestSetup.AssertRecipientsInDeliveryQueue(0); _application.SubmitEMail(); // Wait for the auto-reply. string text = POP3Simulator.AssertGetFirstMessageText(oAccount2.Address, "test"); Assert.IsFalse(text.Contains("Return-Path: [email protected]")); Assert.IsFalse(text.Contains("Return-Path: [email protected]")); Assert.IsTrue(text.Contains("Return-Path: [email protected]")); }
public void TestNestedOrSearch() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); // Send a message to this account. var oSMTP = new SMTPClientSimulator(); oSMTP.Send("*****@*****.**", "*****@*****.**", "Search test", "This is a test of IMAP Search"); IMAPClientSimulator.AssertMessageCount(oAccount.Address, "test", "Inbox", 1); var oSimulator = new IMAPClientSimulator(); string sWelcomeMessage = oSimulator.Connect(); oSimulator.Logon("*****@*****.**", "test"); oSimulator.SelectFolder("INBOX"); string result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR OR SINCE 28-May-2008 SINCE 28-May-2008 SINCE 28-May-2008"); CustomAssert.IsTrue(result.StartsWith("* SEARCH 1"), result); result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR SMALLER 1 LARGER 10000"); CustomAssert.IsTrue(result.StartsWith("* SEARCH\r\n"), result); result = oSimulator.SendSingleCommand("A4 SEARCH ALL OR OR SMALLER 1 LARGER 10000 SMALLER 10000"); CustomAssert.IsTrue(result.StartsWith("* SEARCH 1\r\n"), result); }
public void TestDomainAliases() { // Create a test account // Fetch the default domain DomainAlias oDomainAlias = _domain.DomainAliases.Add(); oDomainAlias.AliasName = "alias.com"; oDomainAlias.Save(); Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); // Send 5 messages to this account. var oSMTP = new SMTPClientSimulator(); for (int i = 0; i < 5; i++) oSMTP.Send("*****@*****.**", "*****@*****.**", "INBOX", "Alias test message"); POP3Simulator.AssertMessageCount("*****@*****.**", "test", 5); { oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); // Set up an alias pointing at the domain alias. SingletonProvider<TestSetup>.Instance.AddAlias(_domain, "*****@*****.**", "*****@*****.**"); // Send to the alias for (int i = 0; i < 5; i++) oSMTP.Send(oAccount.Address, "*****@*****.**", "INBOX", "Plus addressing message"); // Wait for completion POP3Simulator.AssertMessageCount(oAccount.Address, "test", 5); } }
public void DoNotUseStartTlsIfNotEnabledAndNotAvailable() { // No valid recipients... var deliveryResults = new Dictionary<string, int>(); deliveryResults["*****@*****.**"] = 250; int smtpServerPort = TestSetup.GetNextFreePort(); using (var server = new SMTPServerSimulator(1, smtpServerPort, eConnectionSecurity.eCSNone)) { server.AddRecipientResult(deliveryResults); server.StartListen(); Route route = SMTPClientTests.AddRoutePointingAtLocalhost(1, smtpServerPort, false, eConnectionSecurity.eCSNone); // Send message to this route. var smtp = new SMTPClientSimulator(); if (!smtp.Send("*****@*****.**", "*****@*****.**", "Test", "Test message")) CustomAssert.Fail("Delivery failed"); // Wait for the client to disconnect. server.WaitForCompletion(); TestSetup.AssertRecipientsInDeliveryQueue(0, false); Assert.IsNotNullOrEmpty(server.MessageData); CustomAssert.IsFalse(TestSetup.DefaultLogContains("220 Ready to start TLS")); } }
public void SmtpServerNOTSupportingStartTls_StartTlsRequired() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); // 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, eConnectionSecurity.eCSNone)) { server.SetCertificate(SslSetup.GetCertificate()); server.AddRecipientResult(deliveryResults); server.StartListen(); Route route = SMTPClientTests.AddRoutePointingAtLocalhost(1, smtpServerPort, true, eConnectionSecurity.eCSSTARTTLSRequired); var smtpClient = new SMTPClientSimulator(); CustomAssert.IsTrue(smtpClient.Send(account.Address, "*****@*****.**", "Test", "Test message")); TestSetup.AssertRecipientsInDeliveryQueue(0); // This should now be processed via the rule -> route -> external server we've set up. server.WaitForCompletion(); var msg = POP3ClientSimulator.AssertGetFirstMessageText("*****@*****.**", "test"); CustomAssert.IsTrue(msg.Contains("Server does not support STARTTLS")); } }
public void TestDistributionListAnnouncementFromDomainAlias() { var oIMAP = new IMAPSimulator(); var oSMTP = new SMTPClientSimulator(); Application application = SingletonProvider<TestSetup>.Instance.GetApp(); // // TEST LIST SECURITY IN COMBINATION WITH DOMAIN NAME ALIASES // Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oRecipients = new List<string>(); oRecipients.Add("*****@*****.**"); DistributionList oList3 = SingletonProvider<TestSetup>.Instance.AddDistributionList(_domain, "*****@*****.**", oRecipients); oList3.Mode = eDistributionListMode.eLMAnnouncement; oList3.RequireSenderAddress = "*****@*****.**"; oList3.Save(); // THIS MESSAGE SHOULD FAIL Assert.IsFalse(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1")); DomainAlias oDA = _domain.DomainAliases.Add(); oDA.AliasName = "dummy-example.com"; oDA.Save(); // THIS MESSAGE SHOULD SUCCEED Assert.IsTrue(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1")); IMAPSimulator.AssertMessageCount("*****@*****.**", "test", "Inbox", 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; Assert.IsFalse(oSMTP.Send(account1.Address, account1.Address, "Mail 1", "Mail 1", out result1)); Assert.IsFalse(oSMTP.Send(account1.Address, "*****@*****.**", "Mail 1", "Mail 1", out result2)); Assert.IsFalse(oSMTP.Send("*****@*****.**", account1.Address, "Mail 1", "Mail 1", out result3)); Assert.IsFalse(oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1", out result4)); Assert.IsTrue(result1.Contains("550 Delivery is not allowed to this address.")); Assert.IsTrue(result2.Contains("550 Delivery is not allowed to this address.")); Assert.IsTrue(result3.Contains("550 Delivery is not allowed to this address.")); Assert.IsTrue(result4.Contains("550 Delivery is not allowed to this address.")); }
public static bool StaticSend(string sFrom, string recipient, string sSubject, string sBody) { var messageRecipients = new List<string>(); messageRecipients.Add(recipient); var oSimulator = new SMTPClientSimulator(); return oSimulator.Send(sFrom, messageRecipients, sSubject, sBody); }
public void TestCaseInsensitivtyAccount() { Account testAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var oSMTP = new SMTPClientSimulator(); string upperCase = testAccount.Address.ToUpper(); Assert.IsTrue(oSMTP.Send("*****@*****.**", upperCase, "test mail", "test body")); POP3Simulator.AssertMessageCount("*****@*****.**", "test", 1); }
public void TestESMTPSInHeader() { var smtpClientSimulator = new SMTPClientSimulator(false, 25002); string errorMessage; smtpClientSimulator.Send(true, string.Empty, string.Empty, _account.Address, _account.Address, "Test", "test", out errorMessage); var message = POP3ClientSimulator.AssertGetFirstMessageText(_account.Address, "test"); CustomAssert.IsTrue(message.Contains("ESMTPS\r\n")); }
public static bool StaticSend(string sFrom, string recipient, string sSubject, string sBody) { var messageRecipients = new List <string>(); messageRecipients.Add(recipient); var oSimulator = new SMTPClientSimulator(); return(oSimulator.Send(sFrom, messageRecipients, sSubject, sBody)); }
public void TestESMTPAInHeader() { string errorMessage; var client = new SMTPClientSimulator(); client.Send(false, _account.Address, "test", _account.Address, _account.Address, "Test", "Test", out errorMessage); var message = POP3ClientSimulator.AssertGetFirstMessageText(_account.Address, "test"); CustomAssert.IsTrue(message.Contains("ESMTPA\r\n")); }
public void TestLongLineInData() { Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var sb = new StringBuilder(); for (int i = 0; i < 11000; i++) { sb.Append("1234567890"); } var sim = new SMTPClientSimulator(); Assert.IsFalse(sim.SendRaw("*****@*****.**", "*****@*****.**", sb.ToString())); }
public void MessageHeaderShouldBeValidAfterSAHasRun() { // Send a messages to this account. var smtpClient = new SMTPClientSimulator(); smtpClient.Send(account.Address, account.Address, "SA test", "This is a test message with spam.\r\n XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X."); string fullMessage = POP3ClientSimulator.AssertGetFirstMessageText(account.Address, "test"); string messageHeader = fullMessage.Substring(0, fullMessage.IndexOf("\r\n\r\n")); CustomAssert.IsTrue(messageHeader.Contains("Received:")); CustomAssert.IsTrue(messageHeader.Contains("Return-Path:")); CustomAssert.IsTrue(messageHeader.Contains("From:")); CustomAssert.IsTrue(messageHeader.Contains("Subject: ThisIsSpam")); }
public void TestEmptyPassword() { Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", ""); string message; var sim = new POP3Simulator(); Assert.IsFalse(sim.ConnectAndLogon(account1.Address, "", out message)); var simIMAP = new IMAPSimulator(); Assert.IsFalse(simIMAP.ConnectAndLogon(account1.Address, "", out message)); Assert.AreEqual("A01 NO Invalid user name or password.\r\n", message); var simSMTP = new SMTPClientSimulator(); Assert.IsFalse(simSMTP.ConnectAndLogon(25, "dGVzdEB0ZXN0LmNvbQ==", "", out message)); Assert.AreEqual("535 Authentication failed. Restarting authentication process.\r\n", message); }
public void ActionAccountRuleMoveToExistingPublicFolder() { Application application = SingletonProvider<TestSetup>.Instance.GetApp(); // Add an account Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); IMAPFolders publicFolders = _settings.PublicFolders; IMAPFolder folder = publicFolders.Add("Share1"); folder.Save(); IMAPFolderPermission permission = folder.Permissions.Add(); permission.PermissionAccountID = account1.ID; permission.PermissionType = eACLPermissionType.ePermissionTypeUser; permission.set_Permission(eACLPermission.ePermissionInsert, true); permission.set_Permission(eACLPermission.ePermissionRead, true); permission.set_Permission(eACLPermission.ePermissionExpunge, true); permission.Save(); Rule oRule = account1.Rules.Add(); oRule.Name = "Criteria test"; oRule.Active = true; RuleCriteria oRuleCriteria = oRule.Criterias.Add(); oRuleCriteria.UsePredefined = true; oRuleCriteria.PredefinedField = eRulePredefinedField.eFTMessageSize; oRuleCriteria.MatchType = eRuleMatchType.eMTGreaterThan; oRuleCriteria.MatchValue = "0"; oRuleCriteria.Save(); // Add action RuleAction oRuleAction = oRule.Actions.Add(); oRuleAction.Type = eRuleActionType.eRAMoveToImapFolder; oRuleAction.IMAPFolder = "#public.Share1"; oRuleAction.Save(); // Save the rule in the database oRule.Save(); var oSMTP = new SMTPClientSimulator(); // Spam folder CustomAssert.IsTrue(oSMTP.Send("*****@*****.**", "*****@*****.**", "SomeString", "Detta ska hamna i public folder.")); IMAPClientSimulator.AssertMessageCount("*****@*****.**", "test", "#public.Share1", 1); }
public void RoutesShouldConsolidateRecipients() { // Set up a server listening on port 250 which accepts email for [email protected] var deliveryResults = new Dictionary<string, int>(); deliveryResults["*****@*****.**"] = 250; deliveryResults["*****@*****.**"] = 250; deliveryResults["*****@*****.**"] = 250; deliveryResults["*****@*****.**"] = 250; int smtpServerPort = TestSetup.GetNextFreePort(); using (var server = new SMTPServerSimulator(1, smtpServerPort)) { server.AddRecipientResult(deliveryResults); server.StartListen(); // Add a route pointing at localhost Route route = _settings.Routes.Add(); route.DomainName = "test.com"; route.TargetSMTPHost = "localhost"; route.TargetSMTPPort = smtpServerPort; route.NumberOfTries = 1; route.MinutesBetweenTry = 5; route.TreatRecipientAsLocalDomain = true; route.TreatSenderAsLocalDomain = true; route.AllAddresses = true; route.Save(); var smtpClient = new SMTPClientSimulator(); var recipients = new List<string>() { "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" }; CustomAssert.IsTrue(smtpClient.Send("*****@*****.**", recipients, "Test", "Test message")); TestSetup.AssertRecipientsInDeliveryQueue(0); server.WaitForCompletion(); CustomAssert.IsTrue(server.MessageData.Contains("Test message")); CustomAssert.AreEqual(deliveryResults.Count, server.RcptTosReceived); } }
public void TestESMTPSAInHeader() { try { var smtpClientSimulator = new SMTPClientSimulator(false, 25002); string errorMessage; smtpClientSimulator.Send(true, _account.Address, "test", _account.Address, _account.Address, "Test", "test", out errorMessage); var message = POP3ClientSimulator.AssertGetFirstMessageText(_account.Address, "test"); CustomAssert.IsTrue(message.Contains("ESMTPSA\r\n")); } catch (Exception e) { CustomAssert.Fail(e.ToString()); } }
public void TestSenderAsExternalDomainSendToLocalAccountFail() { int smtpServerPort = TestSetup.GetNextFreePort(); Route route = SMTPClientTests.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 oSMTP = new SMTPClientSimulator(); string result; Assert.IsFalse(oSMTP.Send("*****@*****.**", account1.Address, "Mail 1", "Mail 1", out result)); }
public void TestAliases() { // Fetch default domain // Create another account Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); // Add aliases SingletonProvider<TestSetup>.Instance.AddAlias(_domain, "*****@*****.**", "*****@*****.**"); SingletonProvider<TestSetup>.Instance.AddAlias(_domain, "*****@*****.**", "*****@*****.**"); var oSMTP = new SMTPClientSimulator(); // Spam folder oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 1", "Mail 1"); oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 2", "Mail 2"); oSMTP.Send("*****@*****.**", "*****@*****.**", "Mail 3", "Mail 3"); IMAPSimulator.AssertMessageCount("*****@*****.**", "test", "Inbox", 3); }
public void RecipientNotInListShouldReturnError() { // Add a route pointing at localhost Route route = _settings.Routes.Add(); route.DomainName = "test.com"; route.TargetSMTPHost = "localhost"; route.TargetSMTPPort = 255; route.NumberOfTries = 1; route.MinutesBetweenTry = 5; route.TreatRecipientAsLocalDomain = true; route.TreatSenderAsLocalDomain = true; route.AllAddresses = false; // only to recipients in list. route.Save(); var smtpClient = new SMTPClientSimulator(); string resultMessage; CustomAssert.IsFalse(smtpClient.Send("*****@*****.**", "*****@*****.**", "Test", "Test message", out resultMessage)); CustomAssert.AreEqual("550 Recipient not in route list.", resultMessage); }
public void SurblTestRealWorldBody1() { TestSetup.DeleteCurrentDefaultLog(); // Create a test account // Fetch the default domain Account oAccount1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); // Disallow incorrect line endings. _antiSpam.SpamMarkThreshold = 1; _antiSpam.SpamDeleteThreshold = 100; _antiSpam.AddHeaderReason = true; _antiSpam.AddHeaderSpam = true; _antiSpam.PrependSubject = true; _antiSpam.PrependSubjectText = "ThisIsSpam"; // Enable SURBL. SURBLServer oSURBLServer = _antiSpam.SURBLServers[0]; oSURBLServer.Active = true; oSURBLServer.Score = 5; oSURBLServer.Save(); // Send a messages to this account. var oSMTP = new SMTPClientSimulator(); oSMTP.Send("*****@*****.**", "*****@*****.**", "SURBL-Match", TestResources.SecuniaBody1); string sMessageContents = POP3Simulator.AssertGetFirstMessageText(oAccount1.Address, "test"); Assert.IsFalse(sMessageContents.Contains("X-hMailServer-Spam"), "Spam message not detected as spam"); oSURBLServer.Active = false; oSURBLServer.Save(); Assert.IsTrue(TestSetup.DefaultLogContains("SURBL: 2 unique addresses found.")); Assert.IsTrue(TestSetup.DefaultLogContains("SURBL: Found URL: secunia.com")); Assert.IsFalse(TestSetup.DefaultLogContains("SURBL: Found URL: ecunia.com")); Assert.IsTrue(TestSetup.DefaultLogContains("SURBL: Lookup: secunia.com.multi.surbl.org")); Assert.IsTrue(TestSetup.DefaultLogContains("SURBL: Lookup: ubuntu.com.multi.surbl.org")); }
public void TestMirror() { // Create a test account // Fetch the default domain Account oAccount = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); Account oAccount2 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); _settings.MirrorEMailAddress = "*****@*****.**"; _settings.AddDeliveredToHeader = true; // Send 5 messages to this account. var oSMTP = new SMTPClientSimulator(); for (int i = 0; i < 5; i++) oSMTP.Send("*****@*****.**", "*****@*****.**", "INBOX", "Mirror test message"); // Check using POP3 that 5 messages exists. POP3Simulator.AssertMessageCount("*****@*****.**", "test", 5); string message = POP3Simulator.AssertGetFirstMessageText(oAccount2.Address, "test"); Assert.IsTrue(message.Contains("Delivered-To: [email protected]")); }
public void TestAuthFailurePasswordInBounce() { CustomAssert.AreEqual(0, _status.UndeliveredMessages.Length); // No valid recipients... var deliveryResults = new Dictionary<string, int>(); deliveryResults["*****@*****.**"] = 250; int smtpServerPort = TestSetup.GetNextFreePort(); using (var server = new SMTPServerSimulator(1, smtpServerPort)) { server.AddRecipientResult(deliveryResults); server.SimulatedError = SimulatedErrorType.ForceAuthenticationFailure; server.StartListen(); // Add a route so we can connect to localhost. Route route = AddRoutePointingAtLocalhost(5, smtpServerPort, false); route.RelayerRequiresAuth = true; route.RelayerAuthUsername = "******"; route.SetRelayerAuthPassword("MySecretPassword"); // Send message to this route. var smtp = new SMTPClientSimulator(); var recipients = new List<string>(); recipients.Add("*****@*****.**"); CustomAssert.IsTrue(smtp.Send("*****@*****.**", recipients, "Test", "Test message")); // Wait for the client to disconnect. server.WaitForCompletion(); TestSetup.AssertRecipientsInDeliveryQueue(0); string messageText = POP3ClientSimulator.AssertGetFirstMessageText(_account.Address, "test"); CustomAssert.IsFalse(messageText.Contains("MySecretPassword")); CustomAssert.IsTrue(messageText.Contains("<Password removed>")); } }
public void TestMultipleDomains() { Domains domains = SingletonProvider<TestSetup>.Instance.GetApp().Domains; Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); Account account2 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); Domain domain2 = SingletonProvider<TestSetup>.Instance.AddDomain(domains, "test2.com"); Account account3 = SingletonProvider<TestSetup>.Instance.AddAccount(domain2, "*****@*****.**", "test"); Account account4 = SingletonProvider<TestSetup>.Instance.AddAccount(domain2, "*****@*****.**", "test"); var smtpSimulator = new SMTPClientSimulator(); smtpSimulator.Send("*****@*****.**", account1.Address, "Test", "*****@*****.**"); smtpSimulator.Send("*****@*****.**", account2.Address, "Test", "*****@*****.**"); smtpSimulator.Send("*****@*****.**", account3.Address, "Test", "*****@*****.**"); smtpSimulator.Send("*****@*****.**", account4.Address, "Test", "*****@*****.**"); CustomAssert.IsTrue(POP3Simulator.AssertGetFirstMessageText(account1.Address, "test").Contains(account1.Address)); CustomAssert.IsTrue(POP3Simulator.AssertGetFirstMessageText(account2.Address, "test").Contains(account2.Address)); CustomAssert.IsTrue(POP3Simulator.AssertGetFirstMessageText(account3.Address, "test").Contains(account3.Address)); CustomAssert.IsTrue(POP3Simulator.AssertGetFirstMessageText(account4.Address, "test").Contains(account4.Address)); }
public void TestDeleteThresholdLowerThanMarkThreshold() { Account oAccount1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.AntiSpam antiSpam = _settings.AntiSpam; antiSpam.SpamMarkThreshold = 15; antiSpam.SpamDeleteThreshold = 0; antiSpam.AddHeaderReason = true; antiSpam.AddHeaderSpam = true; antiSpam.PrependSubject = true; antiSpam.PrependSubjectText = "ThisIsSpam"; antiSpam.CheckHostInHelo = true; antiSpam.CheckHostInHeloScore = 10; // Enable SURBL. SURBLServer oSURBLServer = antiSpam.SURBLServers[0]; oSURBLServer.Active = true; oSURBLServer.Score = 10; oSURBLServer.Save(); // Send a messages to this account, containing both incorrect MX records an SURBL-hits. // We should only detect one of these two: var oSMTP = new SMTPClientSimulator(); // Should not be possible to send this email since it's results in a spam // score over the delete threshold. CustomAssert.IsTrue(oSMTP.Send("*****@*****.**", oAccount1.Address, "INBOX", "Test http://surbl-org-permanent-test-point.com/ Test 2")); string message = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); CustomAssert.IsTrue(message.Contains("X-hMailServer-Reason-1:")); CustomAssert.IsTrue(message.Contains("X-hMailServer-Reason-2:")); }
public void TestGreyListing() { _antiSpam.GreyListingEnabled = false; Account oAccount1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "*****@*****.**", "test"); var smtp = new SMTPClientSimulator(); var recipients = new List<string>(); recipients.Add(oAccount1.Address); bool result = smtp.Send("*****@*****.**", recipients, "Test", "Body"); CustomAssert.IsTrue(result); POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); _antiSpam.GreyListingEnabled = true; result = smtp.Send("*****@*****.**", recipients, "Test", "Body"); CustomAssert.IsFalse(result); _antiSpam.GreyListingEnabled = false; result = smtp.Send("*****@*****.**", recipients, "Test", "Body"); CustomAssert.IsTrue(result); POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); }
public void TestSignatureExternalDomain() { domain.SignatureEnabled = true; domain.SignaturePlainText = "MyDomainSignature"; domain.AddSignaturesToLocalMail = true; domain.Save(); Account account = SingletonProvider<TestSetup>.Instance.AddAccount(domain, "*****@*****.**", "test"); var oSMTP = new SMTPClientSimulator(); oSMTP.Send("*****@*****.**", account.Address, "SignatureTest", "SignaturerTestBody"); string messageData = POP3ClientSimulator.AssertGetFirstMessageText(account.Address, "test"); CustomAssert.IsFalse(messageData.Contains(domain.SignaturePlainText)); }
public void TestSignature() { domain.SignatureEnabled = true; domain.AddSignaturesToLocalMail = true; Account oAccount1 = SingletonProvider<TestSetup>.Instance.AddAccount(domain, "*****@*****.**", "test"); oAccount1.SignatureEnabled = true; var oSMTP = new SMTPClientSimulator(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 1", "Test of signature - Body"); string sMessageData = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageData.IndexOf("PlainTextSignature") > 0) throw new Exception("Found exception which should not be there"); oAccount1.SignaturePlainText = "PlainTextSignature"; oAccount1.Save(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 2", "Test of signature - Body"); sMessageData = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageData.IndexOf("PlainTextSignature") < 0) throw new Exception("Did not find expected signature"); // Turn off signature again oAccount1.SignatureEnabled = false; oAccount1.Save(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 2", "Test of signature - Body"); sMessageData = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageData.IndexOf("PlainTextSignature") > 0) throw new Exception("Found signature even though there shouldn't be any"); }
public void TestSignatureMacroLocalDomainNonExistantAccount() { domain.SignatureEnabled = true; domain.SignaturePlainText = "MyDomainSignature %User.FirstName%"; domain.AddSignaturesToLocalMail = true; domain.Save(); Account account = SingletonProvider<TestSetup>.Instance.AddAccount(domain, "*****@*****.**", "test"); account.PersonFirstName = "Martin"; var oSMTP = new SMTPClientSimulator(); oSMTP.Send("nonexistant@" + domain.Name, account.Address, "SignatureTest", "SignaturerTestBody"); string messageData = POP3ClientSimulator.AssertGetFirstMessageText(account.Address, "test"); CustomAssert.IsTrue(messageData.Contains("%User.FirstName%")); }
public static bool StaticSendRaw(string sFrom, string recipient, string sBody) { var oSimulator = new SMTPClientSimulator(); return(oSimulator.SendRaw(sFrom, recipient, sBody)); }
public void TestDomainSignature() { var oPOP3 = new POP3ClientSimulator(); domain.SignatureEnabled = true; domain.AddSignaturesToLocalMail = true; Account oAccount1 = SingletonProvider<TestSetup>.Instance.AddAccount(domain, "*****@*****.**", "test"); oAccount1.SignatureEnabled = true; oAccount1.SignaturePlainText = "PlainTextSignature"; oAccount1.Save(); var oSMTP = new SMTPClientSimulator(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 1", "Test of signature - Body"); string sMessageContents = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageContents.IndexOf("PlainTextSignature") <= 0) throw new Exception("Did not find signature"); domain.SignatureEnabled = true; domain.SignaturePlainText = "DomainSignature"; domain.SignatureMethod = eDomainSignatureMethod.eSMAppendToAccountSignature; domain.Save(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 1", "Test of signature - Body"); sMessageContents = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageContents.IndexOf("PlainTextSignature") <= 0 || sMessageContents.IndexOf("DomainSignature") <= 0) throw new Exception("Did not find signature"); domain.SignatureEnabled = true; domain.SignaturePlainText = "DomainSignature"; domain.SignatureMethod = eDomainSignatureMethod.eSMOverwriteAccountSignature; domain.Save(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 1", "Test of signature - Body"); sMessageContents = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageContents.IndexOf("PlainTextSignature") >= 0 || sMessageContents.IndexOf("DomainSignature") <= 0) throw new Exception("Did not find signature"); domain.SignatureEnabled = true; domain.SignaturePlainText = "DomainSignature"; domain.SignatureMethod = eDomainSignatureMethod.eSMSetIfNotSpecifiedInAccount; domain.Save(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 1", "Test of signature - Body"); sMessageContents = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageContents.IndexOf("DomainSignature") >= 0) throw new Exception("Found incorrect signature."); domain.SignatureEnabled = true; domain.SignaturePlainText = "DomainSignature"; domain.SignatureMethod = eDomainSignatureMethod.eSMSetIfNotSpecifiedInAccount; domain.Save(); oAccount1.SignaturePlainText = ""; oAccount1.Save(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 1", "Test of signature - Body"); sMessageContents = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageContents.IndexOf("DomainSignature") <= 0) throw new Exception("Found incorrect signature."); domain.AddSignaturesToLocalMail = false; domain.Save(); oAccount1.SignaturePlainText = "PlainTextSignature"; oAccount1.Save(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 1", "Test of signature - Body"); sMessageContents = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageContents.IndexOf("PlainTextSignature") > 0) throw new Exception("Found incorrect signature."); domain.AddSignaturesToLocalMail = true; domain.Save(); oSMTP.Send(oAccount1.Address, oAccount1.Address, "Test of signature, 1", "Test of signature - Body"); sMessageContents = POP3ClientSimulator.AssertGetFirstMessageText(oAccount1.Address, "test"); if (sMessageContents.IndexOf("PlainTextSignature") <= 0) throw new Exception("Found incorrect signature."); }
public static bool StaticSend(string sFrom, List <string> lstRecipients, string sSubject, string sBody) { var oSimulator = new SMTPClientSimulator(); return(oSimulator.Send(sFrom, lstRecipients, sSubject, sBody)); }