Exemplo n.º 1
0
    protected void InitControl()
    {
        WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

        if (Session["TrySqlPassword"] == null)
        {
            Session["TrySqlPassword"] = settings.DbPassword;
        }

        txtSqlPassword.Attributes.Add("Value", Session["TrySqlPassword"].ToString());

        switch (settings.DbType)
        {
        case SupportedDatabase.MsAccess:
            intDbTypeMsAccess.Checked = true;
            break;

        case SupportedDatabase.MsSqlServer:
            intDbTypeMsSql.Checked = true;
            break;

        case SupportedDatabase.MySql:
            intDbTypeMySql.Checked = true;
            break;
        }
        txtSqlLogin.Value          = settings.DbLogin;
        txtSqlName.Value           = settings.DbName;
        txtSqlDsn.Value            = settings.DbDsn;
        txtSqlSrc.Value            = settings.DbHost;
        txtAccessFile.Value        = settings.DbPathToMdb;
        odbcConnectionString.Value = settings.DbCustomConnectionString;
        useCS.Checked  = settings.UseCustomConnectionString;
        useDSN.Checked = settings.UseDSN;
    }
Exemplo n.º 2
0
    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);
        }
    }
Exemplo n.º 3
0
    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);
        }
    }
Exemplo n.º 4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

        if (!Page.IsPostBack)
        {
            Utils.SettingsPath = AdminPanelUtils.GetWebMailFolder();
            string logPath = Utils.GetLogFilePath();
            intEnableLogging.Checked = settings.EnableLogging;
            txtPathForLog.Value      = logPath;
        }
    }
Exemplo n.º 5
0
    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);
        }
    }
Exemplo n.º 6
0
    protected void InitData()
    {
        WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

        switch (settings.HideLoginMode)
        {
        case LoginMode.Default:
            standartLoginRadio.Checked = true;
            break;

        case LoginMode.HideLoginFieldLoginIsEmail:
            hideLoginRadio.Checked        = true;
            hideLoginSelect.SelectedIndex = 0;
            break;

        case LoginMode.HideLoginFieldLoginIsAccount:
            hideLoginRadio.Checked        = true;
            hideLoginSelect.SelectedIndex = 1;
            break;

        case LoginMode.HideEmailField:
            hideEmailRadio.Checked = true;
            break;

        case LoginMode.HideEmailFieldDisplayDomainAfterLogin:
            hideEmailRadio.Checked = true;
            intDisplayDomainAfterLoginField.Checked = true;
            break;

        case LoginMode.HideEmailFieldLoginIsLoginAndDomain:
            hideEmailRadio.Checked          = true;
            intLoginAsConcatination.Checked = true;
            break;

        case LoginMode.HideEmailFieldDisplayDomainAfterLoginAndLoginIsLoginAndDomain:
            hideEmailRadio.Checked = true;
            intDisplayDomainAfterLoginField.Checked = true;
            intLoginAsConcatination.Checked         = true;
            break;

        default:
            standartLoginRadio.Checked = true;
            break;
        }
        txtUseDomain.Value = settings.DefaultDomainOptional;

        intAllowAdvancedLogin.Checked    = settings.AllowAdvancedLogin;
        intAutomaticCorrectLogin.Checked = settings.AutomaticCorrectLoginSettings;
        intAllowLangOnLogin.Checked      = settings.AllowLanguageOnLogin;
    }
Exemplo n.º 7
0
    protected void InitData()
    {
        WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

        txtSiteName.Value         = settings.SiteName;
        txtIncomingMail.Value     = settings.IncomingMailServer;
        intIncomingMailPort.Value = settings.IncomingMailPort.ToString(CultureInfo.InvariantCulture);

        if (settings.IncomingMailProtocol == IncomingMailProtocol.Pop3)
        {
            intIncomingMailProtocol.SelectedIndex = 0;
        }
        else if (settings.IncomingMailProtocol == IncomingMailProtocol.Imap4)
        {
            intIncomingMailProtocol.SelectedIndex = 1;
        }
        else if (settings.IncomingMailProtocol == IncomingMailProtocol.WMServer)
        {
            intIncomingMailProtocol.SelectedIndex = 2;
        }

        txtOutgoingMail.Value     = settings.OutgoingMailServer;
        intOutgoingMailPort.Value = settings.OutgoingMailPort.ToString(CultureInfo.InvariantCulture);

        intReqSmtpAuthentication.Checked = settings.ReqSmtpAuth;
        intAllowDirectMode.Checked       = settings.AllowDirectMode;
        intDirectModeIsDefault.Checked   = settings.DirectModeIsDefault;

        intAttachmentSizeLimit.Value         = Math.Round((double)(settings.AttachmentSizeLimit / 1024)).ToString(CultureInfo.InvariantCulture);
        intEnableAttachmentSizeLimit.Checked = settings.EnableAttachmentSizeLimit;
        intMailboxSizeLimit.Value            = Math.Round((double)(settings.MailboxSizeLimit / 1024)).ToString(CultureInfo.InvariantCulture);
        intEnableMailboxSizeLimit.Checked    = settings.EnableMailboxSizeLimit;

        intAllowUsersChangeEmailSettings.Checked = settings.AllowUsersChangeEmailSettings;
        intAllowUsersAddNewAccounts.Checked      = settings.AllowUsersAddNewAccounts;
        intAllowUsersChangeAccountsDef.Checked   = settings.AllowUsersChangeAccountsDef;

        txtDefaultUserCharset.Value        = settings.DefaultUserCharset.ToString();
        intAllowUsersChangeCharset.Checked = settings.AllowUsersChangeCharset;

        if (settings.DefaultTimeZone < txtDefaultTimeZone.Items.Count)
        {
            txtDefaultTimeZone.SelectedIndex = settings.DefaultTimeZone;
        }

        intAllowUsersChangeTimeOffset.Checked = settings.AllowUsersChangeTimeZone;
        intTakeImapQuota.Checked = settings.TakeImapQuota;
    }
Exemplo n.º 8
0
    protected void Page_Load(object sender, System.EventArgs e)
    {
        WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

        divDatabase.Attributes["class"]  = _selectedScreen == 1 ? "wm_selected_settings_item" : "wm_settings_item";
        divCommon.Attributes["class"]    = _selectedScreen == 3 ? "wm_selected_settings_item" : "wm_settings_item";
        divInterface.Attributes["class"] = _selectedScreen == 4 ? "wm_selected_settings_item" : "wm_settings_item";
        divLogin.Attributes["class"]     = _selectedScreen == 5 ? "wm_selected_settings_item" : "wm_settings_item";
        divDebug.Attributes["class"]     = _selectedScreen == 6 ? "wm_selected_settings_item" : "wm_settings_item";
        if (settings.EnableWmServer)
        {
            divServer.Attributes["class"] = _selectedScreen == 8 ? "wm_selected_settings_item" : "wm_settings_item";
        }
        else
        {
            divServer.Visible = false;
        }
    }
Exemplo n.º 9
0
    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);
        }
    }
Exemplo n.º 10
0
    public bool CheckDB()
    {
        bool result = true;

        if (Plugin.IsPluginExist(AdminPanelConstants.PluginName.WebMail, (Page as DefaultPage).Settings) ||
            Plugin.IsPluginExist(AdminPanelConstants.PluginName.WebMailLite, (Page as DefaultPage).Settings))
        {
            WebmailSettings wmSettings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

            if (!wmSettings.UseCustomConnectionString)
            {
                switch (wmSettings.DbType)
                {
                case SupportedDatabase.MsSqlServer:
                case SupportedDatabase.MySql:
                    if (string.IsNullOrEmpty(wmSettings.DbDsn.Trim()))
                    {
                        if (string.IsNullOrEmpty(wmSettings.DbLogin.Trim()))
                        {
                            result = false;
                        }
                    }
                    break;

                case SupportedDatabase.MsAccess:
                    if (string.IsNullOrEmpty(wmSettings.DbPathToMdb.Trim()))
                    {
                        result = false;
                    }
                    break;
                }
            }
            else
            {
                if (string.IsNullOrEmpty(wmSettings.DbCustomConnectionString.Trim()))
                {
                    result = false;
                }
            }
        }
        return(result);
    }
Exemplo n.º 11
0
    protected void InitData()
    {
        WebmailSettings settings = new WebMailSettingsCreator().CreateWebMailSettings(AdminPanelUtils.GetWebMailDataFolder());

        intMailsPerPage.Value = settings.MailsPerPage.ToString(CultureInfo.InvariantCulture);

        string[] supportedSkins = AdminPanelUtils.GetSupportedSkins(AdminPanelUtils.GetWebMailFolder());
        for (int i = 0; i < supportedSkins.Length; i++)
        {
            txtDefaultSkin.Items.Add(supportedSkins[i]);
            if (string.Compare(supportedSkins[i], settings.DefaultSkin, true, CultureInfo.InvariantCulture) == 0)
            {
                txtDefaultSkin.SelectedIndex = i;
            }
        }

        string[] supportedLangs = AdminPanelUtils.GetSupportedLangs(AdminPanelUtils.GetWebMailDataFolder());
        for (int i = 0; i < supportedLangs.Length; i++)
        {
            txtDefaultLanguage.Items.Add(supportedLangs[i]);
            if (string.Compare(supportedLangs[i], settings.DefaultLanguage, true, CultureInfo.InvariantCulture) == 0)
            {
                txtDefaultLanguage.SelectedIndex = i;
            }
        }

        intAllowUsersChangeSkin.Checked     = settings.AllowUsersChangeSkin;
        intAllowUsersChangeLanguage.Checked = settings.AllowUsersChangeLanguage;
        intShowTextLabels.Checked           = settings.ShowTextLabels;
        intAllowDHTMLEditor.Checked         = settings.AllowDhtmlEditor;
        intAllowContacts.Checked            = settings.AllowContacts;
        intAllowCalendar.Checked            = settings.AllowCalendar;

        intRightMessagePane.Checked   = ((settings.ViewMode & ViewMode.WithPreviewPane) > 0) ? true : false;
        intAlwaysShowPictures.Checked = ((settings.ViewMode & ViewMode.AlwaysShowPictures) > 0) ? true : false;
    }
Exemplo n.º 12
0
    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();
    }
Exemplo n.º 13
0
    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();
        }
    }
Exemplo n.º 14
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);
    }
Exemplo n.º 15
0
    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);
        }
    }