public void UpdateWebMailDomain() { try { string domainName = textDomainName.Value; string incomingMail = txtIncomingMail.Value; string outgoingMail = txtOutgoingMail.Value; int domainID = Int32.Parse(hidWebMailDomainID.Value); if (!AdminPanelUtils.IsSuperAdmin(Page.Session, (Page as DefaultPage).Settings)) { if (!Subadmin.IsSubadminDomain(int.Parse(Session["AdminID"].ToString()), domainID)) { return; } } bool useSmtpAuth = intReqSmtpAuthentication.Checked; int incomingPort = 0; int.TryParse(intIncomingMailPort.Value, out incomingPort); int outgoingPort = 0; int.TryParse(intOutgoingMailPort.Value, out outgoingPort); IncomingMailProtocol mail_protocol = IncomingMailProtocol.Pop3; switch (intIncomingMailProtocol.SelectedIndex) { case 0: mail_protocol = IncomingMailProtocol.Pop3; break; case 1: mail_protocol = IncomingMailProtocol.Imap4; break; case 2: mail_protocol = IncomingMailProtocol.WMServer; break; } Domain dom = Domain.GetDomain(domainID); dom.Name = domainName; dom.MailIncomingProtocol = mail_protocol; dom.MailIncomingHost = incomingMail; dom.MailIncomingPort = incomingPort; dom.MailOutgoingHost = outgoingMail; dom.MailOutgoingPort = outgoingPort; dom.MailOutgoingAuthentication = useSmtpAuth; dom.Global_addr_book = false; dom.Save(); } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, (error.InnerException != null ? error.InnerException.Message : error.Message)); } }
public bool AddNewWebMailDomain() { bool result = false; // create webmail domain string domainName = textDomainName.Value; string incomingMail = txtIncomingMail.Value; string outgoingMail = txtOutgoingMail.Value; bool useSmtpAuth = intReqSmtpAuthentication.Checked; int incomingPort = 0; int.TryParse(intIncomingMailPort.Value, out incomingPort); int outgoingPort = 0; int.TryParse(intOutgoingMailPort.Value, out outgoingPort); IncomingMailProtocol mail_protocol = IncomingMailProtocol.Pop3; switch (intIncomingMailProtocol.SelectedIndex) { case 0: mail_protocol = IncomingMailProtocol.Pop3; break; case 1: mail_protocol = IncomingMailProtocol.Imap4; break; case 2: mail_protocol = IncomingMailProtocol.WMServer; break; } try { Domain dom = Domain.GetDomain(domainName); if (dom == null) { Domain new_dom = new Domain(0, domainName, mail_protocol, incomingMail, incomingPort, outgoingMail, outgoingPort, useSmtpAuth); new_dom.Global_addr_book = false; new_dom.Save(); result = true; } else { result = false; AdminPanelUtils.SaveState("SessPageErrorMessage", "Such domain already exists.", Page.Session); } } catch (Exception error) { result = false; Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, (error.InnerException != null ? error.InnerException.Message : error.Message)); } return(result); }
private void Save() { Session["TrySqlPassword"] = null; try { WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder()); if (intDbTypeMsAccess.Checked) { settings.DbType = SupportedDatabase.MsAccess; } else if (intDbTypeMySql.Checked) { settings.DbType = SupportedDatabase.MySql; } else { settings.DbType = SupportedDatabase.MsSqlServer; } string rrr = Request[txtSqlLogin.ClientID]; if (useDSN.Checked) { settings.DbDsn = txtSqlDsn.Value; } else if (useCS.Checked) { settings.DbCustomConnectionString = odbcConnectionString.Value; } else { if (settings.DbType == SupportedDatabase.MsAccess) { settings.DbPathToMdb = txtAccessFile.Value; } else { settings.DbLogin = txtSqlLogin.Value; settings.DbPassword = txtSqlPassword.Text; settings.DbName = txtSqlName.Value; settings.DbHost = txtSqlSrc.Value; } } settings.UseCustomConnectionString = useCS.Checked; settings.UseDSN = useDSN.Checked; settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder()); this.Session.Remove(Constants.sessionDbManager); this.Context.Application.Remove(Constants.sessionSettings); } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmSaveUnsuccess); } }
protected void SaveButton_Click(object sender, System.EventArgs e) { try { WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder()); if (standartLoginRadio.Checked) { settings.HideLoginMode = LoginMode.Default; } else if (hideLoginRadio.Checked) { if (hideLoginSelect.SelectedIndex == 0) { settings.HideLoginMode = LoginMode.HideLoginFieldLoginIsEmail; } else { settings.HideLoginMode = LoginMode.HideLoginFieldLoginIsAccount; } } else { if ((intDisplayDomainAfterLoginField.Checked) && (intLoginAsConcatination.Checked)) { settings.HideLoginMode = LoginMode.HideEmailFieldDisplayDomainAfterLoginAndLoginIsLoginAndDomain; } else if (intDisplayDomainAfterLoginField.Checked) { settings.HideLoginMode = LoginMode.HideEmailFieldDisplayDomainAfterLogin; } else if (intLoginAsConcatination.Checked) { settings.HideLoginMode = LoginMode.HideEmailFieldLoginIsLoginAndDomain; } else { settings.HideLoginMode = LoginMode.HideEmailField; } } settings.DefaultDomainOptional = txtUseDomain.Value; settings.AllowAdvancedLogin = intAllowAdvancedLogin.Checked; settings.AutomaticCorrectLoginSettings = intAutomaticCorrectLogin.Checked; settings.AllowLanguageOnLogin = intAllowLangOnLogin.Checked; settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder()); Context.Application.Remove(Constants.sessionSettings); AdminPanelUtils.SetPageReportMessage(Page, Constants.mailAdmSaveSuccess); } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(Page, Constants.mailAdmSaveUnsuccess); } }
protected void ClearLogButton_ServerClick(object sender, System.EventArgs e) { try { Utils.ClearLog(); AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmLogClearSuccess); } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmLogClearUnsuccess); } }
protected void SubmitButton_Click(object sender, System.EventArgs e) { try { WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder()); try { settings.MailsPerPage = short.Parse(intMailsPerPage.Value, CultureInfo.InvariantCulture); if (settings.MailsPerPage < 0) { settings.MailsPerPage = Math.Abs(settings.MailsPerPage); } } catch (Exception error) { Log.WriteException(error); } settings.DefaultSkin = txtDefaultSkin.Value; settings.DefaultLanguage = txtDefaultLanguage.Value; settings.AllowUsersChangeSkin = intAllowUsersChangeSkin.Checked; settings.AllowUsersChangeLanguage = intAllowUsersChangeLanguage.Checked; settings.ShowTextLabels = intShowTextLabels.Checked; settings.AllowDhtmlEditor = intAllowDHTMLEditor.Checked; settings.AllowContacts = intAllowContacts.Checked; settings.AllowCalendar = intAllowCalendar.Checked; ViewMode mode = ViewMode.WithoutPreviewPane; if (intRightMessagePane.Checked) { mode |= ViewMode.WithPreviewPane; } if (intAlwaysShowPictures.Checked) { mode |= ViewMode.AlwaysShowPictures; } settings.ViewMode = mode; settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder()); this.Context.Application.Remove(Constants.sessionSettings); AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmSaveSuccess); } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmSaveUnsuccess); } }
public static void ShowReportAndReportMessages(Page page) { string _PageReportMessage = (AdminPanelUtils.LoadState("SessPageReportMessage", page.Session) != null) ? AdminPanelUtils.LoadState("SessPageReportMessage", page.Session).ToString() : null; string _PageErrorMessage = (AdminPanelUtils.LoadState("SessPageErrorMessage", page.Session) != null) ? AdminPanelUtils.LoadState("SessPageErrorMessage", page.Session).ToString() : null; if (_PageReportMessage != null) { AdminPanelUtils.SetPageReportMessage(page, _PageReportMessage); AdminPanelUtils.SaveState("SessPageReportMessage", null, page.Session); } if (_PageErrorMessage != null) { AdminPanelUtils.SetPageErrorMessage(page, _PageErrorMessage); AdminPanelUtils.SaveState("SessPageErrorMessage", null, page.Session); } }
public void SaveSettings(object sender, System.EventArgs e) { if (txtPassword.Text.Trim() != AdminPanelConstants.DummyPassword) { apSettings.Pass = txtPassword.Text; } try { apSettings.Save(); AdminPanelUtils.SetPageReportMessage(Page, "Settings are successfully saved!"); Response.Redirect("install.aspx?mode=connection", true); } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageErrorMessage(Page, (ex.InnerException != null ? ex.InnerException.Message : ex.Message)); } }
protected void SaveButton_Click(object sender, System.EventArgs e) { try { WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder()); settings.EnableLogging = intEnableLogging.Checked; settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder()); this.Context.Application.Remove(Constants.sessionSettings); AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmSaveSuccess); } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmSaveUnsuccess); } }
protected void save_ServerClick(object sender, EventArgs e) { try { Context.Application.Remove(Constants.sessionSettings); WebmailSettings settings = new WebmailSettings().CreateInstance(AdminPanelUtils.GetWebMailDataFolder()); settings.WmServerRootPath = txtWmServerRootPath.Value; settings.WmServerHost = txtWmServerHostName.Value; settings.WmAllowManageXMailAccounts = intWmAllowManageXMailAccounts.Checked; if (!settings.EnableWmServer) { settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder()); AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmSaveSuccess); } else if (txtWmServerRootPath.Value.Length > 0) { string fullPath = Path.Combine(txtWmServerRootPath.Value, "domains"); if (!Directory.Exists(fullPath)) { throw new WebMailIOException(string.Format(@"Server Root Path '{0}' incorrect.", AdminPanelUtils.EncodeHtml(fullPath))); } Utils.SettingsPath = AdminPanelUtils.GetWebMailFolder(); WMServerStorage storage = new WMServerStorage(txtWmServerHostName.Value, null); storage.GetDomainList(); // test command settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder()); this.Context.Application.Remove(Constants.sessionSettings); AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmSaveSuccess); } else { throw new WebMailIOException(@"Server Root Path not set."); } } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmSaveUnsuccess + "<br /> Error:" + ex.Message); } }
public void UpdateXMailDomain() { try { XMLayer xmLayer = XMServer.CreateXMLayer(); xmLayer.Login(); if (Int32.Parse(hidCustomDomain.Value) == 1) { // edit custom domain StringBuilder redirect = new StringBuilder("redirect"); /* * if (Request.Params[RedirectionsListDDL.UniqueID] != null) * { * string[] RedirectionsList = Request.Params[RedirectionsListDDL.UniqueID].ToString().Split(','); * for (int i = 0; i < RedirectionsList.Length; i++) * redirect.AppendFormat("\t\"{0}\"", RedirectionsList[i]); * } */ StringBuilder lredirect = new StringBuilder("lredirect"); if (Request.Params[LRedirectionsListDDL.UniqueID] != null) { string[] LRedirectionsList = Request.Params[LRedirectionsListDDL.UniqueID].ToString().Split(','); for (int i = 0; i < LRedirectionsList.Length; i++) { lredirect.AppendFormat("\t\"{0}\"", LRedirectionsList[i]); } } string data = string.Format("{0}\r\n{1}\r\n{2}\r\n.\r\n", redirect.ToString(), lredirect.ToString(), AdvancedID.Text); xmLayer.SetCustomDomainTab(textDomainName.Value.Trim(), data); } xmLayer.Logout(); } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageErrorMessage(this.Page, ex.Message); } }
public void DeleteWebMailDomain(string name) { Domain dom = new Domain(); if (!string.IsNullOrEmpty(name)) { try { dom = Domain.LoadFromDb(name); if (dom != null) { dom.Delete(); Account.UpdateAccountsByDomain(dom.Name, dom.ID, 0, -1); } } catch (WebMailException ex) { Log.WriteException(ex); AdminPanelUtils.SetPageErrorMessage(Page, ex.Message); } } }
protected void Page_Load(object sender, EventArgs e) { Session.Timeout = AdminPanelConstants.SessionTimeout; string mode = (!string.IsNullOrEmpty(Request.QueryString["mode"]) ? Request.QueryString["mode"] : string.Empty); if (!Page.IsPostBack) { switch (mode) { case "logout": Session.Clear(); Session.Abandon(); break; } } if (Session["AUTH"] == null) { Control ctrl = LoadControl("core/Login.ascx"); if (ctrl != null) { mainPlaceHolder.Controls.Add(ctrl); } } else { if (File.Exists(Path.Combine(Page.MapPath(""), "install.htm"))) { AdminPanelUtils.SetPageErrorMessage(Page, @"Please delete install.htm file."); } Control ctrl = LoadControl("core/AdminPanel.ascx"); if (ctrl != null) { mainPlaceHolder.Controls.Add(ctrl); } } }
protected void Page_Load(object sender, EventArgs e) { pluginID = LoadPluginID(); rootFolder = Page.MapPath(""); if (!Page.IsPostBack) { pluginID = (!string.IsNullOrEmpty(Request.QueryString["plugin"]) ? Request.QueryString["plugin"] : pluginID); } try { PluginCollection Plugins = Plugin.GetPlugins(rootFolder, Page.Session, (Page as DefaultPage).Settings); installedPlugins.Clear(); foreach (Plugin pl in Plugins) { AdminPanelMainPlugin pctrl = (AdminPanelMainPlugin)LoadControl("../plugins/" + pl.FolderName + "/main.ascx"); pctrl.InitPlugin(); if (pctrl.CanLoadPlugin()) { installedPlugins.Add(pl); } } string mode = (!string.IsNullOrEmpty(Request.QueryString["mode"]) ? Request.QueryString["mode"] : string.Empty); if (!Page.IsPostBack) { switch (mode) { case "help": Response.Redirect((Page as DefaultPage).HelpUrl, false); break; } } if (string.IsNullOrEmpty(pluginID) && installedPlugins.Count > 0) { pluginID = installedPlugins[0].ID; } Plugin plugin = LoadPlugin(pluginID); if (plugin != null) { SavePluginID(plugin); } else { AdminPanelUtils.SetPageErrorMessage(Page, "Plugin not found!"); } WebMail.adminpanel.core.Menu ctrl = (WebMail.adminpanel.core.Menu)LoadControl("Menu.ascx"); if (ctrl != null) { ctrl.Plugins = installedPlugins; ctrl.pluginID = pluginID; menuPlaceHolder.Controls.Add(ctrl); } } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageErrorMessage(Page, ex.Message + ": " + (ex.InnerException != null ? ex.InnerException.Message : ex.Message)); } }
protected void create_tables_Click(object sender, System.EventArgs e) { bool errorFlag = false; Save(); Session["TrySqlPassword"] = txtSqlPassword.Text; txtSqlPassword.Attributes.Add("Value", txtSqlPassword.Text); WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder()); string prefix = settings.DbPrefix; string[] dbTablesName = new string[] { }; string[] tablesNames = new string[] { /* WebMail Tables */ Constants.TablesNames.a_users, Constants.TablesNames.awm_accounts, Constants.TablesNames.awm_addr_book, Constants.TablesNames.awm_addr_groups, Constants.TablesNames.awm_addr_groups_contacts, Constants.TablesNames.awm_columns, Constants.TablesNames.awm_filters, Constants.TablesNames.awm_folders, Constants.TablesNames.awm_folders_tree, Constants.TablesNames.awm_messages, Constants.TablesNames.awm_messages_body, Constants.TablesNames.awm_reads, Constants.TablesNames.awm_senders, Constants.TablesNames.awm_settings, Constants.TablesNames.awm_domains, Constants.TablesNames.awm_temp }; bool isTableExist = false; Utils.SettingsPath = AdminPanelUtils.GetWebMailFolder(); DbStorage storage = DbStorageCreator.CreateDatabaseStorage(null, AdminPanelUtils.GetWebMailDataFolder()); try { storage.Connect(); dbTablesName = storage.GetTablesNames(); } catch (WebMailDatabaseException error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmTablesNotCreated); errorFlag = true; } finally { storage.Disconnect(); } for (int i = 0; i < dbTablesName.Length; i++) { string dbTable = dbTablesName[i]; foreach (string name in tablesNames) { if (string.Compare(dbTable, string.Format("{0}{1}", prefix, name), true, CultureInfo.InvariantCulture) == 0) { isTableExist = true; break; } } if (isTableExist) { break; } } if (isTableExist) { AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmTablesExists); errorFlag = true; } else { try { storage.Connect(); foreach (string name in tablesNames) { try { storage.CreateTable(name, prefix); } catch (WebMailDatabaseException error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmTablesNotCreated); errorFlag = true; } } } catch (WebMailDatabaseException error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmTablesNotCreated); errorFlag = true; } finally { storage.Disconnect(); } if (!errorFlag) { AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmTablesCreated); } } InitControl(); }
protected void test_connection_Click(object sender, System.EventArgs e) { Utils.SettingsPath = AdminPanelUtils.GetWebMailFolder(); DbManager dbMan = null; string connectionString = string.Empty; SupportedDatabase dbType = SupportedDatabase.MsSqlServer; if (intDbTypeMsAccess.Checked) { dbMan = new MsAccessDbManager(); dbType = SupportedDatabase.MsAccess; } else if (intDbTypeMySql.Checked) { dbMan = new MySqlDbManager(); dbType = SupportedDatabase.MySql; } else { dbMan = new MsSqlDbManager(); dbType = SupportedDatabase.MsSqlServer; } WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder()); txtSqlPassword.Text = Request[txtSqlPassword.UniqueID] ?? settings.DbPassword; txtSqlLogin.Value = Request[txtSqlLogin.UniqueID] ?? settings.DbLogin; txtSqlName.Value = Request[txtSqlName.UniqueID] ?? settings.DbName; txtSqlDsn.Value = Request[txtSqlDsn.UniqueID] ?? settings.DbDsn; txtSqlSrc.Value = Request[txtSqlSrc.UniqueID] ?? settings.DbHost; txtAccessFile.Value = Request[txtAccessFile.UniqueID] ?? settings.DbPathToMdb; odbcConnectionString.Value = Request[odbcConnectionString.UniqueID] ?? settings.DbCustomConnectionString; useCS.Checked = (Request[useCS.UniqueID] != null) ? true : settings.UseCustomConnectionString; useDSN.Checked = (Request[useDSN.UniqueID] != null) ? true : settings.UseDSN; Session["TrySqlPassword"] = txtSqlPassword.Text; txtSqlPassword.Attributes.Add("Value", txtSqlPassword.Text); string dsn = txtSqlDsn.Value; if (!useDSN.Checked) { dsn = string.Empty; } connectionString = DbManager.CreateConnectionString(useCS.Checked, odbcConnectionString.Value, dsn, dbType, txtAccessFile.Value, txtSqlLogin.Value, txtSqlPassword.Text, txtSqlName.Value, txtSqlSrc.Value); try { dbMan.Connect(connectionString); AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmConnectSuccess); } catch (WebMailDatabaseException error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmConnectUnsuccess); } finally { dbMan.Disconnect(); } }
protected void Page_Load(object sender, EventArgs e) { (Page as DefaultPage).Body = " onresize=\"ResizeElements('all');\""; AdminPanelUtils.ShowReportAndReportMessages(Page); bool result = CheckDB(); if (result) { string mode = (!string.IsNullOrEmpty(Request.QueryString["mode"]) ? Request.QueryString["mode"] : "domains"); domains_management domainsControl = (domains_management)LoadControl(@"domains.ascx"); if (domainsControl != null) { if (!string.IsNullOrEmpty(Request.QueryString["asc"])) { domainsControl.Asc = (string.Compare(Request.QueryString["asc"], "true", true, CultureInfo.InvariantCulture) == 0) ? true : false; } if (!string.IsNullOrEmpty(Request.QueryString["order"])) { domainsControl.OrderBy = Request.QueryString["order"]; } ContentPlaceHolder.Controls.Add(domainsControl); } try { switch (mode) { case "new": if (AdminPanelUtils.IsSuperAdmin(Page.Session, (Page as DefaultPage).Settings)) { Control ctrl = LoadControl(@"domain-edit.ascx"); if (ctrl != null) { domainsControl.FindControl("PlaceHolderDomain").Controls.Add(ctrl); } } break; case "edit": { if ((!string.IsNullOrEmpty(Request.QueryString["name"])) || (!string.IsNullOrEmpty(Request.QueryString["uid"]))) { Control ctrl = LoadControl(@"domain-edit.ascx"); if (ctrl != null) { domainsControl.FindControl("PlaceHolderDomain").Controls.Add(ctrl); } } } break; case "close_search": { AdminPanelUtils.SaveState("wm_adm_dm_condition", null, Page.Session); Response.Redirect(string.Format(@"default.aspx?mode=domains"), false); } break; } if (Page.IsPostBack) { AdminPanelUtils.SaveState("Page", Request[domainsControl.FindControl("HFPageInfo").UniqueID].ToString(), Page.Session); string action = Request[domainsControl.FindControl("HFAction").UniqueID].ToString(); string value = Request[domainsControl.FindControl("HFValue").UniqueID].ToString(); switch (action) { case "sort": if (value != "") { bool sortOrder = true; AdminPanelUtils.SaveState("wm_adm_dm_order", value, Page.Session); if (Session["wm_adm_dmAsc"] != null) { sortOrder = bool.Parse(Session["wm_adm_dmAsc"].ToString()); } Session["wm_adm_dmAsc"] = !sortOrder; } Response.Redirect(Request.RawUrl, false); break; case "search": AdminPanelUtils.SaveState("wm_adm_dm_condition", value, Page.Session); Response.Redirect(string.Format(@"default.aspx?mode=domains"), false); break; case "delete": if (AdminPanelUtils.IsSuperAdmin(Page.Session, (Page as DefaultPage).Settings)) { try { string[] values = value.Split(','); foreach (string val in values) { SelectedValueStruct sds = AdminPanelUtils.ParseSelectedValue(HttpUtility.UrlDecode(val)); DeleteDomain(sds.Name, sds.Type); if (AdminPanelUtils.LoadState("selectedDomain", Page.Session) != null && AdminPanelUtils.LoadState("selectedDomain", Page.Session).ToString() == val) { AdminPanelUtils.SaveState("selectedDomain", null, Page.Session); } } AdminPanelUtils.SaveState("SessPageReportMessage", WebMail.Constants.mailAdmUpdateAccountSuccess, Page.Session); } catch { AdminPanelUtils.SaveState("SessPageErrorMessage", WebMail.Constants.mailAdmUpdateAccountUnsuccess, Page.Session); } Response.Redirect(string.Format(@"default.aspx?mode=domains"), false); } break; } } } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageErrorMessage(this.Page, (ex.InnerException != null ? ex.InnerException.Message : ex.Message)); } if (AdminPanelUtils.LoadState("Page", Page.Session) != null) { domainsControl.PageNumber = Int32.Parse(AdminPanelUtils.LoadState("Page", Page.Session).ToString()); } } else { AdminPanelUtils.SetPageErrorMessage(this.Page, "<b>Database is not configured</b>. <br />Before creating domains and users, you need to configure database connection first. <br />Please navigate WebMail / Database Settings and configure database connection there."); } }
public DataTable LoadDomains() { DomainCollection domColl = null; XMDomainCollection xmDomains = new XMDomainCollection(); DataTable domTable = new DataTable(); domTable.Columns.Add("id", typeof(string)); domTable.Columns.Add("name", typeof(string)); domTable.Columns.Add("type", typeof(string)); // xmail if (_isServerExist && AdminPanelUtils.IsSuperAdmin(Page.Session, (Page as DefaultPage).Settings)) { xmDomains = XMDomain.GetDomains(); XMDomainCollection xmDomsCust = XMDomain.GetCustomDomainins(); xmDomains.Add(xmDomsCust); } // webmail if (_isWebMailExist) { try { if (AdminPanelUtils.IsSuperAdmin(Page.Session, (Page as DefaultPage).Settings)) { if (_isServerExist) { domColl = Domain.GetDomains(); } else { domColl = Domain.GetDomains(new short[] { (short)IncomingMailProtocol.Pop3, (short)IncomingMailProtocol.Imap4 }); } } else { domColl = Subadmin.GetDomains(adminID); } foreach (XMDomain xmDom in xmDomains) { Domain dom = domColl.GetItem(xmDom.Name); if (dom == null) { WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(); Domain new_dom = new Domain(0, xmDom.Name, IncomingMailProtocol.WMServer, settings.WmServerHost, 143, settings.WmServerHost, settings.XMailSmtpPort, false); new_dom.Save(); xmDom.Type = AdminPanelConstants.UserType.xma; } } foreach (Domain dom in domColl) { XMDomain xmDomain = xmDomains.GetItem(dom.Name); if (xmDomain != null) { xmDomains.Remove(xmDomain); xmDomains.Add(new XMDomain(dom.Name, dom.Name, dom.MailIncomingProtocol == IncomingMailProtocol.WMServer ? AdminPanelConstants.UserType.xma : AdminPanelConstants.UserType.wm)); } else { xmDomains.Add(new XMDomain(dom.Name, dom.Name, dom.MailIncomingProtocol == IncomingMailProtocol.WMServer ? AdminPanelConstants.UserType.xma : AdminPanelConstants.UserType.wm)); if (_isServerExist && dom.MailIncomingProtocol == IncomingMailProtocol.WMServer) { XMDomain.AddDomain(dom.Name); } } } foreach (XMDomain xmDomain in xmDomains) { domTable.Rows.Add(xmDomain.Name, xmDomain.Name, xmDomain.Type); } } catch (Exception ex) { AdminPanelUtils.SetPageErrorMessage(this.Page, (ex.InnerException != null ? ex.InnerException.Message : ex.Message)); Log.WriteException(ex); } } return(domTable); }
public void SaveSettings(object sender, System.EventArgs e) { bool flag = false; this.Context.Application.Remove(AdminPanelConstants.serverSettings); this.Context.Application.Remove(Constants.sessionSettings); string adminpanelxml = Path.Combine(AdminPanelUtils.GetAdminPanelDataFolderPath(), @"adminpanel.xml"); bool isAdminpanelxmlWrite = false; FileStream fs; try { fs = File.Open(adminpanelxml, FileMode.Open, FileAccess.Write); fs.Close(); isAdminpanelxmlWrite = true; } catch (UnauthorizedAccessException) { isAdminpanelxmlWrite = false; } if (isAdminpanelxmlWrite) { if (txtSecurityPassword.Text.Trim() != AdminPanelConstants.DummyPassword) { if (_isServerExist) { try { if (AdminPanelControlAccounts.IsControlAccountExist(UserName)) { AdminPanelControlAccounts.SetControlAccountPassword(UserName, txtSecurityPassword.Text); } else { AdminPanelControlAccounts.AdminPanelControlAccount ca = new AdminPanelControlAccounts.AdminPanelControlAccount(); ca.Name = UserName; ca.Password = txtSecurityPassword.Text; AdminPanelControlAccounts.AddControlAccount(ca); } flag = true; } catch (Exception ex) { flag = false; AdminPanelUtils.SetPageErrorMessage(Page, ex.Message); } if (flag) { apSettings.Pass = txtSecurityPassword.Text; } } else { apSettings.Pass = txtSecurityPassword.Text; } } if (_isServerExist) { apSettings.Host = txtHost.Value; apSettings.Port = txtPort.Value; } try { apSettings.Save(); AdminPanelUtils.SetPageReportMessage(Page, "Settings are successfully saved!"); } catch (Exception ex) { AdminPanelUtils.SetPageErrorMessage(Page, ex.Message); } } else { AdminPanelUtils.SetPageErrorMessage(Page, "Failed to access \"adminpanel.xml\" config file."); } }
public bool AddNewXMailDomain() { string domainName = textDomainName.Value; bool result = false; AdminPanelUtils.SaveState("selectedDomain", null, Page.Session); XMLayer xmLayer = XMServer.CreateXMLayer(); if (_domainType == "vir") { try { xmLayer.Login(); // create custom domain StringBuilder redirect = new StringBuilder("redirect"); if (Request.Params[RedirectionsListDDL.UniqueID] != null) { string[] RedirectionsList = Request.Params[RedirectionsListDDL.UniqueID].ToString().Split(','); for (int i = 0; i < RedirectionsList.Length; i++) { redirect.AppendFormat("\t\"{0}\"", RedirectionsList[i]); } } StringBuilder lredirect = new StringBuilder("lredirect"); if (Request.Params[LRedirectionsListDDL.UniqueID] != null) { string[] LRedirectionsList = Request.Params[LRedirectionsListDDL.UniqueID].ToString().Split(','); for (int i = 0; i < LRedirectionsList.Length; i++) { lredirect.AppendFormat("\t\"{0}\"", LRedirectionsList[i]); } } string data = string.Format("{0}\r\n{1}\r\n{2}\r\n.\r\n", redirect.ToString(), lredirect.ToString(), AdvancedID.Text); xmLayer.SetCustomDomainTab(domainName, data); xmLayer.Logout(); result = true; } catch (XMailException error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, (error.InnerException != null ? error.InnerException.Message : error.Message)); } } else { try { xmLayer.Login(); if (!xmLayer.DomainExist(domainName)) { xmLayer.AddDomain(domainName); } xmLayer.Logout(); result = true; } catch (XMailException error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, error.Message); } // create webmail domain if (_isWebMailExist && result) { WebmailSettings wmSettings = (new WebMailSettingsCreator()).CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder()); try { Domain dom = Domain.GetDomain(domainName); if (dom == null) { int SmtpPort = wmSettings.XMailSmtpPort; string SmtpHost = wmSettings.WmServerHost; int ImapPort = 143; string ImapHost = wmSettings.WmServerHost; Domain new_dom = new Domain(0, domainName, IncomingMailProtocol.WMServer, ImapHost, ImapPort, SmtpHost, SmtpPort, false); new_dom.Global_addr_book = false; new_dom.Save(); result = true; } else { result = false; AdminPanelUtils.SaveState("SessPageErrorMessage", "Such domain already exists.", Page.Session); } } catch (Exception error) { result = false; Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, (error.InnerException != null ? error.InnerException.Message : error.Message)); } } } if (result == false) { try { xmLayer.Login(); xmLayer.DeleteDomain(domainName); xmLayer.Logout(); } catch (Exception error) { Log.WriteException(error); } } return(result); }
void ShowDomains(DataTable domTable, int page, int pageSize, string orderBy, bool asc, string condition) { string HTMLDomains = string.Empty; string sortASC = (asc == true) ? "ASC" : "DESC"; try { DataView view = domTable.DefaultView; view.Sort = OrderBy + " " + sortASC; if (condition.Trim() != string.Empty) { view.RowFilter = "name LIKE '%" + condition.Trim() + "%'"; } domTable = view.ToTable(); _domainsCount = domTable.Rows.Count; if ((page > (_domainsCount / _pageSize)) && SearchCondition.Trim() != string.Empty) { page = 1; AdminPanelUtils.SaveState("Page", page, Page.Session); } HFMaxSize.Value = _domainsCount.ToString(); int maxSize = (_domainsCount - ((page - 1) * pageSize + pageSize) > 0) ? (page - 1) * pageSize + pageSize : _domainsCount; for (int i = (page - 1) * pageSize; i < maxSize; i++) { HTMLDomains += string.Format(@" <tr class=""wm_inbox_read_item"" id=""{0}_{1}""> <td style=""padding-left: 2px; padding-right: 2px;"" id=""none""> <input type=""checkbox"" /> </td> <td /> <td class=""wm_inbox_from_subject"" style=""padding-left: 2px; padding-right: 2px;""> {2} </td> <td /> <td class=""wm_inbox_from_subject"" style=""padding-left: 2px; padding-right: 2px;""> {3} </td> </tr>" , domTable.Rows[i]["type"].ToString(), HttpUtility.UrlEncode(domTable.Rows[i]["id"].ToString()), domTable.Rows[i]["type"].ToString() == AdminPanelConstants.UserType.wm ? @"<img src=""images/wm-domain-icon-big.png"" />" : @"<img src=""images/xmail-domain-icon-big.png"" />", domTable.Rows[i]["name"].ToString()); } if (HTMLDomains == string.Empty) { HTMLDomains = @" <tr> <td colspan=""5""> <div class=""wm_inbox_info_message"">The result is empty</div> </td> </tr>"; } LiteralContactsGroups.Text = HTMLDomains; } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, (error.InnerException != null ? error.InnerException.Message : error.Message)); } }
protected void InitDomain() { string[] dName = new string[1]; string domainName = ""; if (_isUpdate) { _actionDomain = "Edit Domain"; intIncomingMailProtocol.Attributes["class"] = "wm_hide"; ButtonSave.Visible = false; trForHr.Visible = false; textDomainName.Attributes.Add("class", "wm_hide"); string uid = HttpUtility.UrlDecode(this.Request.QueryString["uid"].ToString()); SelectedValueStruct sds = AdminPanelUtils.ParseSelectedValue(uid); hidCustomDomain.Value = "0"; dName[0] = sds.Name; string domains; XMLayer xmLayer = XMServer.CreateXMLayer(); switch (sds.Type) { case AdminPanelConstants.UserType.xm: case AdminPanelConstants.UserType.xma: try { xmLayer.Login(); domains = xmLayer.ListDomains(dName); using (StringReader sr = new StringReader(domains)) { string line = string.Empty; while ((line = sr.ReadLine()) != null) { line = line.Trim(); if (line == ".") { break; } domainName = line.Trim(new char[] { '"' }); } } textDomainName.Value = domainName; } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, error.Message); } finally { xmLayer.Logout(); } break; case AdminPanelConstants.UserType.xmc: _domainType = "vir"; try { xmLayer.Login(); domainName = dName[0]; hidCustomDomain.Value = "1"; ButtonSave.Visible = true; trForHr.Visible = true; string DomainStringArray = XMDomain.GetCustomDomainTab(sds.Name)[0]; using (StringReader sr = new StringReader(DomainStringArray)) { string[] data; string line; // RedirectionsListDDL.Items.Clear(); LRedirectionsListDDL.Items.Clear(); while ((line = sr.ReadLine()) != null) { line = line.Trim(); data = XMDomain.extractCustomDomainData(line); int i; switch (data[0]) { case "mailbox": break; /* * case "redirect": * for (i = 1; i < data.Length; i++) * RedirectionsListDDL.Items.Add(data[i]); * break; */ case "lredirect": for (i = 1; i < data.Length; i++) { LRedirectionsListDDL.Items.Add(data[i]); } break; } } AdvancedID.Text = XMDomain.GetCustomDomainTab(domainName)[1]; textDomainName.Value = domainName; } } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, error.Message); } finally { xmLayer.Logout(); } break; case AdminPanelConstants.UserType.wm: //Webmail Domains _domainType = "rem"; ButtonSave.Visible = true; trForHr.Visible = true; try { Domain dom = Domain.LoadFromDb(sds.Name.Trim()); textDomainName.Value = dom.Name; domainName = dom.Name; txtIncomingMail.Value = dom.MailIncomingHost; intIncomingMailPort.Value = dom.MailIncomingPort.ToString(); txtOutgoingMail.Value = dom.MailOutgoingHost; intOutgoingMailPort.Value = dom.MailOutgoingPort.ToString(); intReqSmtpAuthentication.Checked = dom.MailOutgoingAuthentication; hidWebMailDomainID.Value = dom.ID.ToString(); switch (dom.MailIncomingProtocol) { case IncomingMailProtocol.Pop3: intIncomingMailProtocol.SelectedIndex = 0; break; case IncomingMailProtocol.Imap4: intIncomingMailProtocol.SelectedIndex = 1; break; default: intIncomingMailProtocol.SelectedIndex = 0; break; } } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SaveState("SessPageErrorMessage", WebMail.Constants.mailAdmUpdateAccountUnsuccess, Page.Session); } break; } UID = HttpUtility.UrlEncode(sds.Type + "_" + domainName); if (AdminPanelUtils.IsSuperAdmin(Page.Session, (Page as DefaultPage).Settings)) { Domain dom = new Domain(); if (UID.Length > 0) { try { SelectedValueStruct sus = AdminPanelUtils.ParseSelectedValue(uid); if (sus.Type != AdminPanelConstants.UserType.xm) { try { dom = Domain.LoadFromDb(sus.Name); } catch { } } } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageErrorMessage(this.Page, (ex.InnerException != null ? ex.InnerException.Message : ex.Message)); } } if (dom != null) { domain_filter = dom.ID.ToString(); } } litDomainName.Text = @"<span style=""font-size: large;"">" + domainName + "</span>"; switch (_domainType) { case "vir": litDomainDescription.Text = "Defines rules for forwarding mail from this domain to other addresses."; break; case "rem": litDomainDescription.Text = "Contains users hosted by other mail services (e.g. gmx.com)."; break; default: litDomainDescription.Text = "Contains users hosted by this server."; break; } } else { _actionDomain = "Create Domain"; divDomainName.Attributes["class"] = "wm_hide"; intIncomingMailPort.Value = "110"; intOutgoingMailPort.Value = "25"; switch (_domainType) { case "vir": litDomainDescriptionView.Text = "Defines rules for forwarding mail from this domain to other addresses."; break; case "rem": litDomainDescriptionView.Text = "Contains users hosted by other mail services (e.g. gmx.com)."; break; default: litDomainDescriptionView.Text = "Contains users hosted by this server."; break; } } switch (_domainType) { case "vir": tr_custom_options.Attributes["class"] = ""; break; case "rem": tr_webmail_options.Attributes["class"] = ""; break; default: tr_custom_options.Attributes["class"] = "wm_hide"; tr_webmail_options.Attributes["class"] = "wm_hide"; break; } if (!AdminPanelUtils.IsSuperAdmin(Page.Session, (Page as DefaultPage).Settings)) { tr_see_webmail.Attributes["class"] = "wm_hide"; } }
protected void SaveButton_Click(object sender, System.EventArgs e) { try { WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder()); settings.SiteName = txtSiteName.Value; settings.IncomingMailServer = txtIncomingMail.Value; try { settings.IncomingMailPort = int.Parse(intIncomingMailPort.Value, CultureInfo.InvariantCulture); } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageReportMessage(this.Page, ex.Message); } switch (intIncomingMailProtocol.Value.ToLower(CultureInfo.InvariantCulture)) { case "pop3": settings.IncomingMailProtocol = IncomingMailProtocol.Pop3; break; case "imap4": settings.IncomingMailProtocol = IncomingMailProtocol.Imap4; break; case "xmail": settings.IncomingMailProtocol = IncomingMailProtocol.WMServer; break; } settings.OutgoingMailServer = txtOutgoingMail.Value; try { settings.OutgoingMailPort = int.Parse(intOutgoingMailPort.Value, CultureInfo.InvariantCulture); } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageReportMessage(this.Page, ex.Message); } settings.ReqSmtpAuth = intReqSmtpAuthentication.Checked; settings.AllowDirectMode = intAllowDirectMode.Checked; settings.DirectModeIsDefault = intDirectModeIsDefault.Checked; try { settings.AttachmentSizeLimit = long.Parse(intAttachmentSizeLimit.Value, CultureInfo.InvariantCulture) * 1024; } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageReportMessage(this.Page, ex.Message); } settings.EnableAttachmentSizeLimit = intEnableAttachmentSizeLimit.Checked; try { settings.MailboxSizeLimit = long.Parse(intMailboxSizeLimit.Value, CultureInfo.InvariantCulture) * 1024; } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageReportMessage(this.Page, ex.Message); } settings.EnableMailboxSizeLimit = intEnableMailboxSizeLimit.Checked; settings.AllowUsersChangeEmailSettings = intAllowUsersChangeEmailSettings.Checked; settings.AllowUsersAddNewAccounts = intAllowUsersAddNewAccounts.Checked; settings.AllowUsersChangeAccountsDef = intAllowUsersChangeAccountsDef.Checked; try { settings.DefaultUserCharset = int.Parse(txtDefaultUserCharset.Value, CultureInfo.InvariantCulture); } catch (Exception ex) { Log.WriteException(ex); AdminPanelUtils.SetPageReportMessage(this.Page, ex.Message); } settings.AllowUsersChangeCharset = intAllowUsersChangeCharset.Checked; settings.DefaultTimeZone = (short)txtDefaultTimeZone.SelectedIndex; settings.AllowUsersChangeTimeZone = intAllowUsersChangeTimeOffset.Checked; settings.TakeImapQuota = intTakeImapQuota.Checked; settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder()); this.Context.Application.Remove(Constants.sessionSettings); AdminPanelUtils.SetPageReportMessage(this.Page, Constants.mailAdmSaveSuccess); } catch (Exception error) { Log.WriteException(error); AdminPanelUtils.SetPageErrorMessage(this.Page, Constants.mailAdmSaveUnsuccess); } }