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); } }
public void CreateDomain(MailDomain domain) { try { svcDomainAdmin domains = new svcDomainAdmin(); PrepareProxy(domains); DomainSettingsResult defaultDomainSettings = domains.GetDomainDefaults(AdminUsername, AdminPassword); SettingsRequestResult defaultRequestedSettings = domains.GetRequestedDomainDefaults(AdminUsername, AdminPassword, new string[] { "defaultaltsmtpport", "defaultaltsmtpportenabled", "defaultautoresponderrestriction", "defaultbypassgreylisting", "defaultenablecatchalls", "defaultenabledomainkeys", "defaultenableemailreports", "defaultenablepopretrieval", "defaultmaxmessagesperhour", "defaultmaxmessagesperhourenabled", "defaultmaxsmtpoutbandwidthperhour", "defaultmaxsmtpoutbandwidthperhourenabled", "defaultmaxbouncesreceivedperhour", "defaultmaxbouncesreceivedperhourenabled", "defaultmaxpopretrievalaccounts", "defaultsharedcalendar", "defaultsharedcontact", "defaultsharedfolder", "defaultsharedgal", "defaultsharednotes", "defaultsharedtasks", "defaultshowcalendar", "defaultshowcontacts", "defaultshowcontentfilteringmenu", "defaultshowdomainaliasmenu", "defaultshowdomainreports", "defaultshowlistmenu", "defaultshownotes", "defaultshowspammenu", "defaultshowtasks", "defaultshowuserreports", "defaultskin", "defaultspamresponderoption", "defaultspamforwardoption" }); string[] requestedDomainDefaults = defaultRequestedSettings.settingValues; //domain Path is taken from WebsitePanel Service settings GenericResult result = null; if (!InheritDomainDefaultLimits) { result = domains.AddDomain(AdminUsername, AdminPassword, domain.Name, Path.Combine(DomainsPath, domain.Name), SYSTEM_DOMAIN_ADMIN, // admin username Guid.NewGuid().ToString("P"), // admin password "Domain", // admin first name "Administrator", // admin last name ServerIP, defaultDomainSettings.ImapPort, defaultDomainSettings.PopPort, defaultDomainSettings.SmtpPort, domain.MaxAliases, domain.MaxDomainSizeInMB, domain.MaxDomainUsers, domain.MaxMailboxSizeInMB, domain.MaxMessageSize, domain.MaxRecipients, domain.MaxDomainAliases, domain.MaxLists, defaultDomainSettings.ShowDomainAliasMenu, // ShowDomainAliasMenu defaultDomainSettings.ShowContentFilteringMenu, // ShowContentFilteringMenu defaultDomainSettings.ShowSpamMenu, // ShowSpamMenu defaultDomainSettings.ShowStatsMenu, // ShowStatsMenu defaultDomainSettings.RequireSmtpAuthentication, defaultDomainSettings.ShowListMenu, // ShowListMenu defaultDomainSettings.ListCommandAddress); } else { result = domains.AddDomain(AdminUsername, AdminPassword, domain.Name, Path.Combine(DomainsPath, domain.Name), SYSTEM_DOMAIN_ADMIN, // admin username Guid.NewGuid().ToString("P"), // admin password "Domain", // admin first name "Administrator", // admin last name ServerIP, defaultDomainSettings.ImapPort, defaultDomainSettings.PopPort, defaultDomainSettings.SmtpPort, defaultDomainSettings.MaxAliases, defaultDomainSettings.MaxDomainSizeInMB, defaultDomainSettings.MaxDomainUsers, defaultDomainSettings.MaxMailboxSizeInMB, defaultDomainSettings.MaxMessageSize, defaultDomainSettings.MaxRecipients, defaultDomainSettings.MaxDomainAliases, defaultDomainSettings.MaxLists, defaultDomainSettings.ShowDomainAliasMenu, // ShowDomainAliasMenu defaultDomainSettings.ShowContentFilteringMenu, // ShowContentFilteringMenu defaultDomainSettings.ShowSpamMenu, // ShowSpamMenu defaultDomainSettings.ShowStatsMenu, // ShowStatsMenu defaultDomainSettings.RequireSmtpAuthentication, defaultDomainSettings.ShowListMenu, // ShowListMenu defaultDomainSettings.ListCommandAddress); } if (!result.Result) throw new Exception(result.Message); // update additional settings result = domains.SetRequestedDomainSettings(AdminUsername, AdminPassword, domain.Name, SetMailDomainDefaultSettings(requestedDomainDefaults)); if (!result.Result) throw new Exception(result.Message); } catch (Exception ex) { if (DomainExists(domain.Name)) { DeleteDomain(domain.Name); } Log.WriteError(ex); throw new Exception("Could not create mail domain", ex); } }