예제 #1
0
    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));
        }
    }
예제 #2
0
        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);
            }
        }
예제 #3
0
    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);
    }