Ejemplo n.º 1
0
        private void ConfirmDNSBlackLists()
        {
            hMailServer.DNSBlackList black = _application.Settings.AntiSpam.DNSBlackLists.get_ItemByDNSHost("127.0.0.1");
            Assert.IsTrue(black.Active);
            Assert.AreEqual("127.5.2.1", black.ExpectedResult);
            Assert.AreEqual("Test", black.RejectMessage);
            Assert.AreEqual(4, black.Score);

            black = _application.Settings.AntiSpam.DNSBlackLists.get_ItemByDNSHost("127.0.0.2");
            Assert.IsTrue(black.Active);
            Assert.AreEqual("127.5.2.2", black.ExpectedResult);
            Assert.AreEqual("Test2", black.RejectMessage);
            Assert.AreEqual(5, black.Score);
        }
Ejemplo n.º 2
0
        public ucDNSBlackList(int dnsBlackListID)
        {
            InitializeComponent();

            if (dnsBlackListID > 0)
            {
                hMailServer.DNSBlackLists dnsBlackLists = APICreator.DNSBlackLists;
                _representedObject = dnsBlackLists.get_ItemByDBID(dnsBlackListID);
            }

            DirtyChecker.SubscribeToChange(this, OnContentChanged);
            new TabOrderManager(this).SetTabOrder(TabOrderManager.TabScheme.AcrossFirst);

            checkEnabled.Checked = true;

            EnableDisable();
        }
Ejemplo n.º 3
0
        public ucDNSBlackList(int dnsBlackListID)
        {
            InitializeComponent();

             if (dnsBlackListID > 0)
             {
             hMailServer.DNSBlackLists dnsBlackLists = APICreator.DNSBlackLists;
             _representedObject = dnsBlackLists.get_ItemByDBID(dnsBlackListID);
             }

             DirtyChecker.SubscribeToChange(this, OnContentChanged);
             new TabOrderManager(this).SetTabOrder(TabOrderManager.TabScheme.AcrossFirst);

             checkEnabled.Checked = true;

             EnableDisable();
        }
Ejemplo n.º 4
0
        private void SetupDNSBlackLists()
        {
            hMailServer.DNSBlackList black = _application.Settings.AntiSpam.DNSBlackLists.Add();
            black.Active         = true;
            black.DNSHost        = "127.0.0.1";
            black.ExpectedResult = "127.5.2.1";
            black.RejectMessage  = "Test";
            black.Score          = 4;
            black.Save();

            black                = _application.Settings.AntiSpam.DNSBlackLists.Add();
            black.Active         = true;
            black.DNSHost        = "127.0.0.2";
            black.ExpectedResult = "127.5.2.2";
            black.RejectMessage  = "Test2";
            black.Score          = 5;
            black.Save();
        }
Ejemplo n.º 5
0
        public bool SaveData()
        {
            bool newObject = false;

            if (_representedObject == null)
            {
                hMailServer.Settings      settings      = APICreator.Application.Settings;
                hMailServer.AntiSpam      antiSpam      = settings.AntiSpam;
                hMailServer.DNSBlackLists dnsBlackLists = antiSpam.DNSBlackLists;

                _representedObject = dnsBlackLists.Add();
                newObject          = true;

                Marshal.ReleaseComObject(settings);
                Marshal.ReleaseComObject(antiSpam);
                Marshal.ReleaseComObject(dnsBlackLists);
            }

            _representedObject.Active = checkEnabled.Checked;

            _representedObject.DNSHost        = textDNSHost.Text;
            _representedObject.ExpectedResult = textExpectedResult.Text;
            _representedObject.RejectMessage  = textRejectionMessage.Text;
            _representedObject.Score          = textSpamScore.Number;

            _representedObject.Save();


            // Refresh the node in the tree if the name has changed.
            IMainForm mainForm = Instances.MainForm;

            mainForm.RefreshCurrentNode(_representedObject.DNSHost);

            // Set the object to clean.
            DirtyChecker.SetClean(this);

            if (newObject)
            {
                SearchNodeText crit = new SearchNodeText(_representedObject.DNSHost);
                mainForm.SelectNode(crit);
            }

            return(true);
        }
Ejemplo n.º 6
0
        public void TestDNSBlackList()
        {
            hMailServer.DNSBlackLists dnsBlackLists = SingletonProvider <Utilities> .Instance.GetApp().Settings.AntiSpam.DNSBlackLists;

            hMailServer.DNSBlackList dnsBlackList = dnsBlackLists.Add();
            dnsBlackList.DNSHost       = "zen.spamhaus.org";
            dnsBlackList.RejectMessage = "srv1";
            dnsBlackList.Score         = 5;
            dnsBlackList.Active        = true;
            dnsBlackList.Save();

            dnsBlackList               = dnsBlackLists.Add();
            dnsBlackList.DNSHost       = "bl.spamcop.net";
            dnsBlackList.RejectMessage = "srv2";
            dnsBlackList.Score         = 5;
            dnsBlackList.Active        = false;
            dnsBlackList.Save();

            dnsBlackList               = dnsBlackLists.Add();
            dnsBlackList.DNSHost       = "dnsbl.njabl.org";
            dnsBlackList.RejectMessage = "srv3";
            dnsBlackList.Score         = 5;
            dnsBlackList.Active        = true;
            dnsBlackList.Save();

            hMailServer.Application application = SingletonProvider <Utilities> .Instance.GetApp();

            _antiSpam.SpamMarkThreshold   = 1;
            _antiSpam.SpamDeleteThreshold = 100;

            hMailServer.Account account = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test");

            Utilities.DeleteCurrentDefaultLog();

            SMTPClientSimulator.StaticSend(account.Address, account.Address, "Test", "TestBody");
            POP3Simulator.AssertGetFirstMessageText(account.Address, "test");

            string result = Utilities.ReadCurrentDefaultLog();

            Assert.IsTrue(result.Contains(".zen.spamhaus.org, 0 addresses found: (none), Match: False"), result);
            Assert.IsTrue(result.Contains(".dnsbl.njabl.org, 0 addresses found: (none), Match: False"), result);
            Assert.IsFalse(result.Contains(".bl.spamcop.net, 0 addresses found:"), result);
        }
Ejemplo n.º 7
0
        protected override void LoadList()
        {
            listObjects.Items.Clear();

            hMailServer.DNSBlackLists dnsBlackLists = GetDNSBlackLists();
            for (int i = 0; i < dnsBlackLists.Count; i++)
            {
                hMailServer.DNSBlackList dnsBlackList = dnsBlackLists[i];

                ListViewItem item = listObjects.Items.Add(dnsBlackList.DNSHost);
                item.SubItems.Add(EnumStrings.GetYesNoString(dnsBlackList.Active));

                item.Tag = dnsBlackList.ID;

                Marshal.ReleaseComObject(dnsBlackList);
            }

            Marshal.ReleaseComObject(dnsBlackLists);
        }
Ejemplo n.º 8
0
        public void TestDNSBlackList()
        {
            hMailServer.Settings oSettings = SingletonProvider <Utilities> .Instance.GetApp().Settings;

            hMailServer.DNSBlackList dnsBlackList = oSettings.AntiSpam.DNSBlackLists.Add();

            dnsBlackList.DNSHost       = "somehost.com";
            dnsBlackList.RejectMessage = "somerejectmessage";
            dnsBlackList.Score         = 5;

            dnsBlackList.Save();

            if (dnsBlackList.ID == 0)
            {
                throw new Exception("DNS blacklist not saved properly");
            }

            oSettings.AntiSpam.DNSBlackLists.DeleteByDBID(dnsBlackList.ID);
        }
Ejemplo n.º 9
0
        public bool SaveData()
        {
            bool newObject = false;
             if (_representedObject == null)
             {
            hMailServer.Settings settings = APICreator.Application.Settings;
            hMailServer.AntiSpam antiSpam = settings.AntiSpam;
            hMailServer.DNSBlackLists dnsBlackLists = antiSpam.DNSBlackLists;

            _representedObject = dnsBlackLists.Add();
            newObject = true;

            Marshal.ReleaseComObject(settings);
            Marshal.ReleaseComObject(antiSpam);
            Marshal.ReleaseComObject(dnsBlackLists);
             }

             _representedObject.Active = checkEnabled.Checked;

             _representedObject.DNSHost = textDNSHost.Text;
             _representedObject.ExpectedResult = textExpectedResult.Text;
             _representedObject.RejectMessage = textRejectionMessage.Text;
             _representedObject.Score = textSpamScore.Number;

             _representedObject.Save();

             // Refresh the node in the tree if the name has changed.
             IMainForm mainForm = Instances.MainForm;
             mainForm.RefreshCurrentNode(_representedObject.DNSHost);

             // Set the object to clean.
             DirtyChecker.SetClean(this);

             if (newObject)
             {
            SearchNodeText crit = new SearchNodeText(_representedObject.DNSHost);
            mainForm.SelectNode(crit);
             }

             return true;
        }
Ejemplo n.º 10
0
        public void DisableSpamProtection()
        {
            hMailServer.AntiSpam antiSpam = _settings.AntiSpam;

            if (antiSpam.SpamMarkThreshold != 10000)
            {
                antiSpam.SpamMarkThreshold = 10000;
            }

            if (antiSpam.SpamDeleteThreshold != 10000)
            {
                antiSpam.SpamDeleteThreshold = 10000;
            }

            if (antiSpam.CheckHostInHelo != false)
            {
                antiSpam.CheckHostInHelo = false;
            }

            if (antiSpam.GreyListingEnabled != false)
            {
                antiSpam.GreyListingEnabled = false;
            }

            if (antiSpam.BypassGreylistingOnMailFromMX != false)
            {
                antiSpam.BypassGreylistingOnMailFromMX = false;
            }

            if (antiSpam.SpamAssassinEnabled != false)
            {
                antiSpam.SpamAssassinEnabled = false;
            }

            if (antiSpam.TarpitCount != 0)
            {
                antiSpam.TarpitCount = 0;
            }

            if (antiSpam.TarpitDelay != 0)
            {
                antiSpam.TarpitDelay = 0;
            }

            if (antiSpam.UseMXChecks != false)
            {
                antiSpam.UseMXChecks = false;
            }

            if (antiSpam.UseSPF != false)
            {
                antiSpam.UseSPF = false;
            }

            if (antiSpam.MaximumMessageSize != 1024)
            {
                antiSpam.MaximumMessageSize = 1024;
            }

            if (antiSpam.DKIMVerificationEnabled != false)
            {
                antiSpam.DKIMVerificationEnabled = false;
            }

            antiSpam.WhiteListAddresses.Clear();

            for (int i = 0; i < antiSpam.DNSBlackLists.Count; i++)
            {
                hMailServer.DNSBlackList list = antiSpam.DNSBlackLists[i];
                if (list.Active)
                {
                    list.Active = false;
                    list.Save();
                }
            }

            hMailServer.DNSBlackLists dnsBlackLists = antiSpam.DNSBlackLists;
            while (dnsBlackLists.Count > 0)
            {
                dnsBlackLists.DeleteByDBID(dnsBlackLists[0].ID);
            }

            hMailServer.SURBLServers surblServers = antiSpam.SURBLServers;

            for (int i = surblServers.Count - 1; i >= 0; i--)
            {
                if (surblServers[i].DNSHost != "multi.surbl.org")
                {
                    surblServers.DeleteByDBID(surblServers[i].ID);
                }
                else
                {
                    surblServers[i].Active = false;
                }
            }

            if (surblServers.Count == 0)
            {
                hMailServer.SURBLServer surblServer = surblServers.Add();
                surblServer.Active        = false;
                surblServer.DNSHost       = "multi.surbl.org";
                surblServer.RejectMessage = "Nope";
                surblServer.Score         = 5;
                surblServer.Save();
            }

            hMailServer.IncomingRelays incomingRelays = _settings.IncomingRelays;
            while (incomingRelays.Count > 0)
            {
                incomingRelays.DeleteByDBID(incomingRelays[0].ID);
            }

            antiSpam.ClearGreyListingTriplets();
        }