public void TestNormalUserAccessOtherAccount() { hMailServer.Account account = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); account.AdminLevel = hMailServer.eAdminLevel.hAdminLevelNormal; account.Save(); hMailServer.Account secondAccount = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); secondAccount.AdminLevel = hMailServer.eAdminLevel.hAdminLevelNormal; secondAccount.Save(); hMailServer.Application newApplication = new hMailServer.Application(); newApplication.Authenticate("*****@*****.**", "test"); Assert.AreEqual(1, newApplication.Domains.Count); Assert.AreEqual(1, newApplication.Domains[0].Accounts.Count); hMailServer.Account myAccount = newApplication.Domains[0].Accounts.get_ItemByAddress("*****@*****.**"); try { hMailServer.Account otherAccount = newApplication.Domains[0].Accounts.get_ItemByAddress("*****@*****.**"); Assert.Fail(); } catch (COMException ex) { Assert.IsTrue(ex.Message.Contains("Invalid index.")); } hMailServer.Domains domains = SingletonProvider <Utilities> .Instance.GetApp().Domains; Assert.AreEqual(2, domains[0].Accounts.Count); }
public void TestMultipleDomains() { hMailServer.Domains domains = SingletonProvider <Utilities> .Instance.GetApp().Domains; hMailServer.Account account1 = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Account account2 = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); hMailServer.Domain domain2 = SingletonProvider <Utilities> .Instance.AddDomain(domains, "test2.com"); hMailServer.Account account3 = SingletonProvider <Utilities> .Instance.AddAccount(domain2, "*****@*****.**", "test"); hMailServer.Account account4 = SingletonProvider <Utilities> .Instance.AddAccount(domain2, "*****@*****.**", "test"); SMTPClientSimulator smtpSimulator = new SMTPClientSimulator(); smtpSimulator.Send("*****@*****.**", account1.Address, "Test", "*****@*****.**"); smtpSimulator.Send("*****@*****.**", account2.Address, "Test", "*****@*****.**"); smtpSimulator.Send("*****@*****.**", account3.Address, "Test", "*****@*****.**"); smtpSimulator.Send("*****@*****.**", account4.Address, "Test", "*****@*****.**"); Assert.IsTrue(POP3Simulator.AssertGetFirstMessageText(account1.Address, "test").Contains(account1.Address)); Assert.IsTrue(POP3Simulator.AssertGetFirstMessageText(account2.Address, "test").Contains(account2.Address)); Assert.IsTrue(POP3Simulator.AssertGetFirstMessageText(account3.Address, "test").Contains(account3.Address)); Assert.IsTrue(POP3Simulator.AssertGetFirstMessageText(account4.Address, "test").Contains(account4.Address)); }
public void TestDomainAdminAccessOtherDomain() { hMailServer.Account account = SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "test"); account.AdminLevel = hMailServer.eAdminLevel.hAdminLevelDomainAdmin; account.Save(); SingletonProvider <Utilities> .Instance.AddDomain("example.com"); hMailServer.Application newApplication = new hMailServer.Application(); newApplication.Authenticate("*****@*****.**", "test"); Assert.AreEqual(1, newApplication.Domains.Count); hMailServer.Domains domains = SingletonProvider <Utilities> .Instance.GetApp().Domains; Assert.AreEqual(2, domains.Count); try { hMailServer.Domain secondDomain = newApplication.Domains.get_ItemByName("example.com"); Assert.Fail(); } catch (COMException ex) { Assert.IsTrue(ex.Message.Contains("Invalid index.")); } }
public void LoadData() { comboLocalDomain.Items.Clear(); hMailServer.Domains domains = APICreator.Application.Domains; string domainNames = domains.Names; string[] rows = Microsoft.VisualBasic.Strings.Split(domainNames, "\r\n", -1, Microsoft.VisualBasic.CompareMethod.Binary); List <ListViewItem> items = new List <ListViewItem>(); comboLocalDomain.AddItem("", null); foreach (string row in rows) { if (string.IsNullOrEmpty(row)) { continue; } string[] properties = Microsoft.VisualBasic.Strings.Split(row, "\t", -1, Microsoft.VisualBasic.CompareMethod.Text); int id = Convert.ToInt32(properties[0]); string name = properties[1]; comboLocalDomain.AddItem(name, null); } Marshal.ReleaseComObject(domains); }
public ucProgress() { InitializeComponent(); _application = Globals.GetApp(); _utilities = _application.Utilities; _domains = _application.Domains; _counter = 0; }
public hMailServer.Domain AddDomain(hMailServer.Domains oDomains, string sName) { hMailServer.Domain oDomain = oDomains.Add(); oDomain.Name = sName; oDomain.Active = true; oDomain.Save(); return(oDomain); }
public void ClearDomains() { hMailServer.Domains domains = application.Domains; while (domains.Count > 0) { hMailServer.Domain domain = domains[0]; domain.Delete(); } }
public void TestDomain() { hMailServer.Domains domains = SingletonProvider <Utilities> .Instance.GetApp().Domains; _domain = SingletonProvider <Utilities> .Instance.AddDomain(domains, "t'est2.com"); if (_domain.ID == 0) { throw new Exception("Domain not properly saved"); } _domain.Delete(); }
protected override void DeleteItems(List <ListViewItem> items) { hMailServer.Domains domains = APICreator.Application.Domains; foreach (var item in items) { int domainID = Convert.ToInt32(item.Tag); hMailServer.Domain domain = domains.get_ItemByDBID(domainID); domain.Delete(); Marshal.ReleaseComObject(domain); } Marshal.ReleaseComObject(domains); }
public void TestDomainNameDuplicate() { hMailServer.Domains domains = SingletonProvider <Utilities> .Instance.GetApp().Domains; SingletonProvider <Utilities> .Instance.AddDomain(domains, "test2.com"); try { SingletonProvider <Utilities> .Instance.AddDomain(domains, "test2.com"); } catch (Exception) { return; } Assert.Fail("Duplicate domain name was permitted."); }
public void TestDomainAliasWithSameNameAsDomain() { hMailServer.Domains domains = SingletonProvider <Utilities> .Instance.GetApp().Domains; hMailServer.DomainAlias da = _domain.DomainAliases.Add(); da.AliasName = "test.com"; try { da.Save(); } catch (Exception) { return; } Assert.Fail("Domain alias with same name as domain was permitted."); }
public void TestDomainRenaming() { hMailServer.Domains domains = SingletonProvider <Utilities> .Instance.GetApp().Domains; _domain = SingletonProvider <Utilities> .Instance.AddDomain(domains, "test2.com"); // Add a few accounts SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "t1"); SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "t1"); SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "t1"); SingletonProvider <Utilities> .Instance.AddAccount(_domain, "*****@*****.**", "t1"); SingletonProvider <Utilities> .Instance.AddAlias(_domain, "*****@*****.**", "t1"); SingletonProvider <Utilities> .Instance.AddAlias(_domain, "*****@*****.**", "t1"); SingletonProvider <Utilities> .Instance.AddAlias(_domain, "*****@*****.**", "t1"); List <string> list = new List <string>(); SingletonProvider <Utilities> .Instance.AddDistributionList(_domain, "*****@*****.**", list); SingletonProvider <Utilities> .Instance.AddDistributionList(_domain, "*****@*****.**", list); SingletonProvider <Utilities> .Instance.AddDistributionList(_domain, "*****@*****.**", list); _domain.Name = "test3.com"; _domain.Save(); Assert.IsNotNull(_domain.Accounts.get_ItemByAddress("*****@*****.**")); Assert.IsNotNull(_domain.Accounts.get_ItemByAddress("*****@*****.**")); Assert.IsNotNull(_domain.Accounts.get_ItemByAddress("*****@*****.**")); Assert.IsNotNull(_domain.Accounts.get_ItemByAddress("*****@*****.**")); Assert.IsNotNull(_domain.Aliases.get_ItemByName("*****@*****.**")); Assert.IsNotNull(_domain.Aliases.get_ItemByName("*****@*****.**")); Assert.IsNotNull(_domain.Aliases.get_ItemByName("*****@*****.**")); Assert.IsNotNull(_domain.DistributionLists.get_ItemByAddress("*****@*****.**")); Assert.IsNotNull(_domain.DistributionLists.get_ItemByAddress("*****@*****.**")); Assert.IsNotNull(_domain.DistributionLists.get_ItemByAddress("*****@*****.**")); }
public ucSelectDomain() { InitializeComponent(); hMailServer.Application application = Globals.GetApp(); hMailServer.Domains domains = application.Domains; for (int i = 0; i < domains.Count; i++) { hMailServer.Domain domain = domains[i]; listViewDomains.Items.Add(domain.Name); Marshal.ReleaseComObject(domain); } Marshal.ReleaseComObject(domains); }
private void FillCombos() { comboType.AddItem(EnumStrings.GetPermissionTypeString(eACLPermissionType.ePermissionTypeUser), eACLPermissionType.ePermissionTypeUser); if (_onlyUsers == false) { comboType.AddItem(EnumStrings.GetPermissionTypeString(eACLPermissionType.ePermissionTypeGroup), eACLPermissionType.ePermissionTypeGroup); comboType.AddItem(EnumStrings.GetPermissionTypeString(eACLPermissionType.ePermissionTypeAnyone), eACLPermissionType.ePermissionTypeAnyone); } comboType.SelectedIndex = 0; hMailServer.Domains domains = APICreator.Application.Domains; string domainNames = domains.Names; Marshal.ReleaseComObject(domains); string[] rows = Microsoft.VisualBasic.Strings.Split(domainNames, "\r\n", -1, Microsoft.VisualBasic.CompareMethod.Binary); foreach (string row in rows) { if (string.IsNullOrEmpty(row)) { continue; } string[] properties = Microsoft.VisualBasic.Strings.Split(row, "\t", -1, Microsoft.VisualBasic.CompareMethod.Text); int id = Convert.ToInt32(properties[0]); string name = properties[1]; if (_specificDomainID == 0 || _specificDomainID == id) { comboDomains.AddItem(name, id); } } if (comboDomains.Items.Count > 0) { comboDomains.SelectedIndex = 0; } }
protected override void LoadList() { listDomains.Items.Clear(); hMailServer.Application app = APICreator.Application; hMailServer.Domains domains = app.Domains; string domainNames = domains.Names; string[] rows = Microsoft.VisualBasic.Strings.Split(domainNames, "\r\n", -1, Microsoft.VisualBasic.CompareMethod.Binary); List <ListViewItem> items = new List <ListViewItem>(); foreach (string row in rows) { if (string.IsNullOrEmpty(row)) { continue; } string[] properties = Microsoft.VisualBasic.Strings.Split(row, "\t", -1, Microsoft.VisualBasic.CompareMethod.Text); int id = Convert.ToInt32(properties[0]); string name = properties[1]; bool enabled = properties[2] == "1"; ListViewItem item = new ListViewItem(); item.Text = name; item.SubItems.Add(EnumStrings.GetYesNoString(enabled)); item.Tag = id; items.Add(item); } listDomains.Items.AddRange(items.ToArray()); Marshal.ReleaseComObject(domains); }
public hMailServer.Domain AddDomain(string name) { hMailServer.Domains domains = SingletonProvider <Utilities> .Instance.GetApp().Domains; return(AddDomain(domains, name)); }
public bool SaveData() { if (_domain == null) { hMailServer.Domains domains = _application.Domains; _domain = domains.Add(); Marshal.ReleaseComObject(domains); } _domain.Name = textDomainName.Text; _domain.Postmaster = textCatchAllAddress.Text; _domain.AddSignaturesToReplies = checkAddSignaturesToReplies.Checked; _domain.AddSignaturesToLocalMail = checkAddSignaturesToLocalMail.Checked; _domain.SignatureEnabled = checkSignatureEnabled.Checked; _domain.Active = checkEnabled.Checked; if (radioSMAppendToAccountSignature.Checked == true) { _domain.SignatureMethod = eDomainSignatureMethod.eSMAppendToAccountSignature; } else if (radioSMOverwriteAccountSignature.Checked == true) { _domain.SignatureMethod = eDomainSignatureMethod.eSMOverwriteAccountSignature; } else if (radioSMSetIfNotSpecifiedInAccount.Checked == true) { _domain.SignatureMethod = eDomainSignatureMethod.eSMSetIfNotSpecifiedInAccount; } _domain.MaxSize = textMaxSize.Number; _domain.MaxMessageSize = textMaxMessageSize.Number; _domain.MaxAccountSize = textMaxAccountSize.Number; _domain.MaxNumberOfAccounts = textMaxNumberOfAccounts.Number; _domain.MaxNumberOfAliases = textMaxNumberOfAliases.Number; _domain.MaxNumberOfDistributionLists = textMaxNumberOfDistributionLists.Number; _domain.MaxNumberOfAccountsEnabled = checkMaxNumberOfAccountsEnabled.Checked; _domain.MaxNumberOfAliasesEnabled = checkMaxNumberOfAliasesEnabled.Checked; _domain.MaxNumberOfDistributionListsEnabled = checkMaxNumberOfDistributionListsEnabled.Checked; _domain.SignaturePlainText = textPlainTextSignature.Text; _domain.SignatureHTML = textHTMLSignature.Text; _domain.PlusAddressingEnabled = checkUsePlusAddressing.Checked; _domain.PlusAddressingCharacter = comboPlusAddressingCharacter.Text; _domain.AntiSpamEnableGreylisting = checkGreyListingEnabled.Checked; _domain.DKIMSignEnabled = checkDKIMSignEnabled.Checked; _domain.DKIMPrivateKeyFile = textDKIMPrivateKeyFile.Text; _domain.DKIMSelector = textDKIMSelector.Text; if (radioDKIMHeaderMethodSimple.Checked) { _domain.DKIMHeaderCanonicalizationMethod = eDKIMCanonicalizationMethod.eCanonicalizationSimple; } else if (radioDKIMHeaderMethodRelaxed.Checked) { _domain.DKIMHeaderCanonicalizationMethod = eDKIMCanonicalizationMethod.eCanonicalizationRelaxed; } if (radioDKIMBodyMethodSimple.Checked) { _domain.DKIMBodyCanonicalizationMethod = eDKIMCanonicalizationMethod.eCanonicalizationSimple; } else if (radioDKIMBodyMethodRelaxed.Checked) { _domain.DKIMBodyCanonicalizationMethod = eDKIMCanonicalizationMethod.eCanonicalizationRelaxed; } if (radioDKIMSigningAlgorithmSHA1.Checked) { _domain.DKIMSigningAlgorithm = eDKIMAlgorithm.eSHA1; } else if (radioDKIMSigningAlgorithmSHA256.Checked) { _domain.DKIMSigningAlgorithm = eDKIMAlgorithm.eSHA256; } try { _domain.Save(); } catch (Exception ex) { MessageBox.Show(Strings.Localize(ex.Message), EnumStrings.hMailServerAdministrator, MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } IMainForm mainForm = Instances.MainForm; // Refresh the node in the tree mainForm.RefreshCurrentNode(_domain.Name); // Set the object to clean. DirtyChecker.SetClean(this); SearchNodeText crit = new SearchNodeText(_domain.Name); mainForm.SelectNode(crit); EnableDisableTabs(); return(true); }
internal Domains(hMailServer.Domains o) { _object = o; }