public void UpdateDomain(MailDomain domain) { try { // load original domain MailDomain origDomain = GetDomain(domain.Name); svcDomainAdmin domains = new svcDomainAdmin(); PrepareProxy(domains); GenericResult result = domains.UpdateDomain(AdminUsername, AdminPassword, domain.Name, origDomain.ServerIP, domain.ImapPort, domain.PopPort, domain.SmtpPort, domain.MaxAliases, domain.MaxDomainSizeInMB, domain.MaxDomainUsers, domain.MaxMailboxSizeInMB, domain.MaxMessageSize, domain.MaxRecipients, domain.MaxDomainAliases, domain.MaxLists, domain.ShowDomainAliasMenu, // ShowDomainAliasMenu domain.ShowContentFilteringMenu, // ShowContentFilteringMenu domain.ShowSpamMenu, // ShowSpamMenu domain.ShowsStatsMenu, // this parameter is no longer used in SM5 origDomain.RequireSmtpAuthentication, domain.ShowListMenu, // Showlistmenu origDomain.ListCommandAddress); if (!result.Result) throw new Exception(result.Message); // update catch-all group UpdateDomainCatchAllGroup(domain.Name, domain.CatchAllAccount); // update additional settings result = domains.SetRequestedDomainSettings(AdminUsername, AdminPassword, domain.Name, new string[] { "isenabled=" + domain.Enabled, "catchall=" + (!String.IsNullOrEmpty(domain.CatchAllAccount) ? SYSTEM_CATCH_ALL : ""), "altsmtpport=" + domain.SmtpPortAlt, "ldapport=" + domain.LdapPort, "sharedcalendar=" + domain.SharedCalendars, "sharedcontact=" + domain.SharedContacts, "sharedfolder=" + domain.SharedFolders, "sharednotes=" + domain.SharedNotes, "sharedtasks=" + domain.SharedTasks, "sharedgal=" + domain.IsGlobalAddressList, "enablecatchalls=" + domain[MailDomain.SMARTERMAIL5_CATCHALLS_ENABLED], "bypassforwardblacklist=" + domain.BypassForwardBlackList, "showdomainreports=" + domain[MailDomain.SMARTERMAIL5_SHOW_DOMAIN_REPORTS], "maxmessagesperhour=" + domain[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR], "maxmessagesperhourenabled=" + domain[MailDomain.SMARTERMAIL5_MESSAGES_PER_HOUR_ENABLED], "maxsmtpoutbandwidthperhour=" + domain[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR], "maxsmtpoutbandwidthperhourenabled=" + domain[MailDomain.SMARTERMAIL5_BANDWIDTH_PER_HOUR_ENABLED], "enablepopretrieval=" + domain[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ENABLED], "maxpopretrievalaccounts=" + domain[MailDomain.SMARTERMAIL5_POP_RETREIVAL_ACCOUNTS], "maxbouncesreceivedperhour=" + domain[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR], "maxbouncesreceivedperhourenabled=" + domain[MailDomain.SMARTERMAIL5_BOUNCES_PER_HOUR_ENABLED], "enableimapretrieval=" + domain[MailDomain.SMARTERMAIL6_IMAP_RETREIVAL_ENABLED], "enablemailsigning=" + domain[MailDomain.SMARTERMAIL6_MAIL_SIGNING_ENABLED], "enableemailreports=" + domain[MailDomain.SMARTERMAIL6_EMAIL_REPORTS_ENABLED], "syncml=" + domain[MailDomain.SMARTERMAIL6_SYNCML_ENABLED] }); /* string[] requestedSettings = new string[] { "maxmessagesperhour", "maxmessagesperhourenabled", "maxsmtpoutbandwidthperhour", "maxsmtpoutbandwidthperhourenabled" }; SettingsRequestResult addResult = domains.GetRequestedDomainSettings(AdminUsername, AdminPassword, domain.Name, requestedSettings); */ if (!result.Result) throw new Exception(result.Message); } catch (Exception ex) { throw new Exception("Could not update mail domain", ex); } }