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); }
protected void Page_Load(object sender, EventArgs e) { install _page = Page as install; _web_step = _page._web_step; _max_step = _page._max_step; if (Page.IsPostBack) { AdminPanelUtils.SaveState("AUTH", true, Page.Session); AdminPanelSettings apSettings = new AdminPanelSettings().Load(); AdminPanelUtils.SaveState("Admin", apSettings.User, Page.Session); Response.Redirect("default.aspx", true); } }
public void UpdateDomain() { switch (_domainType) { case "vir": case "reg": this.UpdateXMailDomain(); break; case "rem": this.UpdateWebMailDomain(); break; } AdminPanelUtils.SaveState("SessPageReportMessage", WebMail.Constants.mailAdmUpdateAccountSuccess, Page.Session); InitDomain(); }
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); } }
protected void Enter_OnClick(object sender, EventArgs e) { AdminPanelSettings apSettings = (Page as DefaultPage).Settings; if ((apSettings.User != LoginID.Value) || (apSettings.Pass != PasswordID.Value)) { try { Subadmin adm = Subadmin.GetSubadmin(LoginID.Value); if (adm != null) { if (PasswordID.Value != adm.Password) { _errorMessage = "Wrong login and/or password. Authentication failed."; _errorClass = "wm_login_error"; return; } else { AdminPanelUtils.SaveState("AUTH", true, Page.Session); AdminPanelUtils.SaveState("Admin", LoginID.Value, Page.Session); AdminPanelUtils.SaveState("AdminID", adm.ID, Page.Session); Response.Redirect("default.aspx", false); } } } catch { } _errorMessage = "Wrong login and/or password. Authentication failed."; _errorClass = "wm_login_error"; } else { AdminPanelUtils.SaveState("AUTH", true, Page.Session); AdminPanelUtils.SaveState("Admin", LoginID.Value, Page.Session); Response.Redirect("default.aspx", false); } }
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"; } }
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); }
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."); } }
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)); } }