Esempio n. 1
0
    protected void Page_Load(object sender, System.EventArgs e)
    {
        if (Session["AUTH"] == null)
        {
            return;
        }

        Utils.SettingsPath = AdminPanelUtils.GetWebMailFolder();
        #region Convert Settings in settings.xml

        WebmailSettings wmsNew = new WebmailSettings().CreateInstance(AdminPanelUtils.GetWebMailDataFolder());

        sb.AppendFormat("<font color='black' sise='3' face='verdana'><b>{1}</b>. Start convert settings.xml</font><BR />", "settings.xml", _allOps + 1);
        _allOps++;

        try
        {
            wmsNew.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder());
            sb.AppendFormat("<font color='grey' sise='3' face='verdana'>- Convert settings successful.</font><BR /><BR />");
        }
        catch (Exception ex)
        {
            sb.AppendFormat("<font color='grey' sise='3' face='verdana'>- {0}</font><BR /><BR />", ex.Message);
            _errorCounter++;
        }
        # endregion
Esempio n. 2
0
    protected void SubmitButton_Click(object sender, System.EventArgs e)
    {
        bool flag = false;

        try
        {
            AdminPanelSettings apSettings = new AdminPanelSettings().Load();

            string licenseKeyFromForm = txtLicenseKey.Value ?? string.Empty;

            if (string.IsNullOrEmpty(licenseKeyFromForm))
            {
                apSettings.LicenseKey = licenseKeyFromForm;
                flag = false;
            }
            else
            {
                try
                {
                    Pop3.LicenseKey = licenseKeyFromForm.Substring(0, 39);
                    Pop3 pop = new Pop3();
                    flag = true;
                }
                catch (Exception error)
                {
                    Log.WriteException(error);
                    _errorMessage         = "License Key is invalid";
                    GetLicenseUrl.Visible = true;
                    flag = false;
                }
                apSettings.LicenseKey = licenseKeyFromForm;
            }
            if (File.Exists(Path.Combine(AdminPanelUtils.GetWebMailDataFolder(), @"settings\settings.xml")))
            {
                WebmailSettings settings = new WebmailSettings().CreateInstance(AdminPanelUtils.GetWebMailDataFolder());
                settings.LicenseKey = licenseKeyFromForm;
                settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder());
            }

            apSettings.Save();
            _errorMessage = Constants.mailAdmSaveSuccess;

            if (flag == true)
            {
                Session["LicenseKey"] = txtLicenseKey.Value;
                Response.Redirect("install.aspx?mode=db", true);
            }
            else
            {
                _errorMessage = "Please specify valid license key.";
            }
        }
        catch (Exception error)
        {
            Log.WriteException(error);
            _errorMessage = Constants.mailAdmSaveUnsuccess;
        }
    }
Esempio n. 3
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);
        }
    }
Esempio n. 4
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);
        }
    }
Esempio n. 5
0
    private bool Save()
    {
        Session["TrySqlPassword"] = null;
        try
        {
            WebmailSettings settings = new WebmailSettings().CreateInstance(AdminPanelUtils.GetWebMailDataFolder());

            Regex r = new Regex(@"[^a-zA-Z0-9_]");
            settings.DbPrefix = r.Replace(DbPrefix.Value, "_");

            bool res = true;
            if (settings.DbPrefix != DbPrefix.Value)
            {
                res = false;
            }

            if (intDbTypeMsAccess.Checked)
            {
                settings.DbType   = SupportedDatabase.MsAccess;
                settings.DbPrefix = "";
            }
            else if (intDbTypeMySql.Checked)
            {
                settings.DbType = SupportedDatabase.MySql;
            }
            else
            {
                settings.DbType = SupportedDatabase.MsSqlServer;
            }
            settings.DbLogin     = txtSqlLogin.Value;
            settings.DbPassword  = txtSqlPassword.Text;
            settings.DbName      = txtSqlName.Value;
            settings.DbDsn       = txtSqlDsn.Value;
            settings.DbHost      = txtSqlSrc.Value;
            settings.DbPathToMdb = txtAccessFile.Value;
            settings.DbCustomConnectionString  = odbcConnectionString.Value;
            settings.UseCustomConnectionString = useCS.Checked;
            settings.UseDSN = useDSN.Checked;

            settings.SaveWebmailSettings(AdminPanelUtils.GetWebMailDataFolder());
            Session.Remove(Constants.sessionDbManager);
            Context.Application.Remove(Constants.sessionSettings);

            if (!res)
            {
                _errorMessage = @"<font color=""red"">Only letters, digits and underscore (""_"") allowed.</font>";
            }
            return(res);
        }
        catch (Exception error)
        {
            Log.WriteException(error);
            _errorMessage = @"<font color=""red"">" + Constants.mailAdmSaveUnsuccess + ": " + error.Message + "</font>";
            return(false);
        }
    }
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!Page.IsPostBack)
     {
         WebmailSettings settings = new WebmailSettings().CreateInstance(AdminPanelUtils.GetWebMailDataFolder());
         txtWmServerRootPath.Value             = settings.WmServerRootPath;
         txtWmServerHostName.Value             = settings.WmServerHost;
         intWmAllowManageXMailAccounts.Checked = settings.WmAllowManageXMailAccounts;
     }
 }
    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);
        }
    }
Esempio n. 8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        controlPrefix = this.ClientID;

        install _page = Page as install;

        _web_step = _page._web_step;
        _max_step = _page._max_step;

        intDbTypeMsSql_label.Attributes["for"]    = intDbTypeMsSql.ClientID;
        intDbTypeMySql_label.Attributes["for"]    = intDbTypeMySql.ClientID;
        intDbTypeMsAccess_label.Attributes["for"] = intDbTypeMsAccess.ClientID;

        WebmailSettings settings = new WebmailSettings().CreateInstance(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;
        DbPrefix.Value = settings.DbPrefix;
    }
Esempio 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);
        }
    }
    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);
        }
    }
Esempio n. 11
0
 protected void SubmitButton_Click(object sender, System.EventArgs e)
 {
     if (Save())
     {
         if (chNotCreate.Checked)
         {
             if (!create_tables())
             {
                 Response.Redirect("install.aspx?mode=common", true);
             }
         }
         else
         {
             Response.Redirect("install.aspx?mode=common", true);
         }
     }
     else
     {
         WebmailSettings settings = new WebmailSettings().CreateInstance(AdminPanelUtils.GetWebMailDataFolder());
         DbPrefix.Value = settings.DbPrefix;
     }
 }
Esempio n. 12
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;
    }
Esempio n. 13
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();
    }
Esempio n. 14
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();
        }
    }
Esempio n. 15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        install _page = Page as install;

        _web_step = _page._web_step;
        _max_step = _page._max_step;

        try
        {
            Session["TestCreateSessions"] = "1";
            _Sessions = @"<font color=""green"">OK</font>";
            var_sess  = "1";
        }
        catch (Exception error)
        {
            Log.WriteException(error);
            _Sessions        = @"<font color=""red"">Error, session support in ASP.NET must be enabled</font>";
            _SessionsMessage = "<br/><br/>You need to enable session support in properties of WebMail and AdminPanel virtual directories / ASP.NET tab / Edit Configuration / State Management tab / Session State mode in your IIS Manager. Set it to any value, except Off. InProc is recommended value in most cases. Alternatively, you may manually enable session support in sessionState tag of web.config files in WebMail and AdminPanel folders. In case of a shared hosting, changing sessionState may have no effect if your ISP prohibited changing this parameter. You need to ask your hosting provider to enable session support in this case.";
            _Error           = true;
        }

        string DataFolderPath = AdminPanelUtils.GetWebMailDataFolder();

        if (DataFolderPath != null && Directory.Exists(DataFolderPath))
        {
            _DataFolderLocation = @"<font color=""green"">Found</font>";
            var_dfpath          = "1";
            try
            {
                string        temp_dir = Path.Combine(DataFolderPath, Path.GetRandomFileName());
                DirectoryInfo di       = Directory.CreateDirectory(temp_dir);
                di.Delete();
                _CreatingDeletingFolders = @"<font color=""green"">OK</font>";
                var_cdfolders            = "1";
            }
            catch (Exception)
            {
                _Error = true;
                _CreatingDeletingFolders = @"<font color=""red"">Creating/deleting folders Error, can't create or delete sub-folders in the data folder.</font>";


                _CreatingDeletingFoldersMessage = @"<br/><br/>You need to grant read/write permission over WebMail Lite data folder and all its contents to your web server user. For instructions, please refer to <a href=""docs/index-installation-instructions.htm"">this</a> section of WebMail Lite documentation and our <a href=""http://www.afterlogic.com/support/faq-webmail-lite-asp-net#3"" target=_blank>FAQ</a>.";
            }

            try
            {
                string     temp_file = Path.Combine(DataFolderPath, Path.GetRandomFileName());
                FileStream fs        = File.Create(temp_file);
                fs.Close();
                if (File.Exists(temp_file))
                {
                    File.Delete(temp_file);
                }
                _CreatingDeletingFiles = @"<font color=""green"">OK</font>";
                var_cdfiles            = "1";
            }
            catch (Exception)
            {
                _Error = true;
                _CreatingDeletingFiles = @"<font color=""red"">Creating/deleting files Error, can't create files in the data folder.</font>";


                _CreatingDeletingFilesMessage = @"<br/><br/>You need to grant read/write permission over WebMail Lite data folder and all its contents to your web server user. For instructions, please refer to <a href=""docs/index-installation-instructions.htm"">this</a> section of WebMail Lite documentation and our <a href=""http://www.afterlogic.com/support/faq-webmail-lite-asp-net#3"" target=_blank>FAQ</a>.";
            }

            if (File.Exists(Path.Combine(DataFolderPath, @"settings\adminpanel.xml")))
            {
                _AdminPanelSettingsFileLocation = @"<font color=""green"">Found</font>";
                var_apsfl = "1";

                try
                {
                    FileStream _fs2 = File.OpenRead(Path.Combine(DataFolderPath, @"settings\adminpanel.xml"));
                    _fs2.Close();
                    _AdminPanelReadSettingsFile = @"<font color=""green"">OK</font>";
                    var_apsfread = "1";
                }
                catch (Exception)
                {
                    _Error = true;
                    _AdminPanelReadSettingsFile = @"<font color=""red"">Error, can't read <nobr>""" + DataFolderPath + @"settings\adminpanel.xml" + @"""</nobr> file</font>";


                    _AdminPanelReadWriteSettingsFileMessage = @"<br/><br/>You should grant read/write permission over WebMail Lite admin panel settings file to your web server user. For instructions, please refer to <a href=""docs/index-installation-instructions.htm"">this</a> section of WebMail documentation and our <a href=""http://www.afterlogic.com/support/faq-webmail-lite-asp-net#3"" target=_blank>FAQ</a>.";
                }
                try
                {
                    FileStream _fs2 = File.OpenWrite(Path.Combine(DataFolderPath, @"settings\adminpanel.xml"));
                    _fs2.Close();
                    _AdminPanelWriteSettingsFile = @"<font color=""green"">OK</font>";
                    var_apsfwrite = "1";
                }
                catch (Exception)
                {
                    _Error = true;
                    _AdminPanelWriteSettingsFile = @"<font color=""red"">Error, can't write <nobr>""" + DataFolderPath + @"settings\adminpanel.xml" + @"""</nobr> file</font>";


                    _AdminPanelReadWriteSettingsFileMessage = @"<br/><br/>You should grant read/write permission over WebMail Lite admin panel settings file to your web server user. For instructions, please refer to <a href=""docs/index-installation-instructions.htm"">this</a> section of WebMail documentation and our <a href=""http://www.afterlogic.com/support/faq-webmail-lite-asp-net#3"" target=_blank>FAQ</a>.";
                }
            }
            else
            {
                _Error = true;
                _AdminPanelSettingsFileLocation = @"<font color=""red"">Not Found, can't find <nobr>""" + DataFolderPath + @"settings\adminpanel.xml""</nobr> file.</font>";

                tr_AdminPanelReadSettingsFile.Attributes["class"] = "wm_hide";



                _AdminPanelSettingsFileLocationMessage = @"<br/><br/>Make sure you completely copied the data folder with all its contents from WebMail Lite installation package into the location you specified in web.config file.";

                _AdminPanelSettingsFileLocationStyle = "border:1px solid #ff0000";
            }

            if (File.Exists(Path.Combine(DataFolderPath, @"settings\settings.xml")))
            {
                _WebMailSettingsFileLocation = @"<font color=""green"">Found</font>";
                var_wmsfl = "1";

                try
                {
                    FileStream _fs1 = File.OpenRead(Path.Combine(DataFolderPath, @"settings\settings.xml"));
                    _fs1.Close();
                    _WebMailReadSettingsFile = @"<font color=""green"">OK</font>";
                    var_wmsfread             = "1";
                }
                catch (Exception)
                {
                    _Error = true;
                    _WebMailReadSettingsFile = @"<font color=""red"">Error, can't read <nobr>""" + DataFolderPath + @"settings\settings.xml" + @"""</nobr> file</font>";


                    _WebMailReadWriteSettingsFileMessage = @"<br/><br/>You should grant read/write permission over WebMail Lite settings file to your web server user. For instructions, please refer to <a href=""docs/index-installation-instructions.htm"">this</a> section of WebMail documentation and our <a href=""http://www.afterlogic.com/support/faq-webmail-lite-asp-net#3"" target=_blank>FAQ</a>.";
                }

                try
                {
                    FileStream _fs1 = File.OpenWrite(Path.Combine(DataFolderPath, @"settings\settings.xml"));
                    _fs1.Close();
                    _WebMailWriteSettingsFile = @"<font color=""green"">OK</font>";
                    var_wmsfwrite             = "1";
                }
                catch (Exception)
                {
                    _Error = true;
                    _WebMailWriteSettingsFile = @"<font color=""red"">Error, can't write <nobr>""" + DataFolderPath + @"settings\settings.xml" + @"""</nobr> file</font>";


                    _WebMailReadWriteSettingsFileMessage = @"<br/><br/>You should grant read/write permission over WebMail Lite settings file to your web server user. For instructions, please refer to <a href=""docs/index-installation-instructions.htm"">this</a> section of WebMail documentation and our <a href=""http://www.afterlogic.com/support/faq-webmail-lite-asp-net#3"" target=_blank>FAQ</a>.";
                }
            }
            else
            {
                _Error = true;
                _WebMailSettingsFileLocation = @"<font color=""red"">Not Found, can't find <nobr>""" + DataFolderPath + @"settings\settings.xml""</nobr> file.</font>";

                tr_WebMailReadSettingsFile.Attributes["class"] = "wm_hide";



                _WebMailSettingsFileLocationMessage = @"<br/><br/>Make sure you completely copied the data folder with all its contents from WebMail Lite installation package into the location you specified in web.config file.";

                _WebMailSettingsFileLocationStyle = "border:1px solid #ff0000";
            }
        }
        else
        {
            _Error = true;

            _DataFolderLocation = @"<font color=""red"">Not Found, can't find <nobr>""" + DataFolderPath + @"""</nobr> folder.</font>";



            _DataFolderLocationMessage = @"<br/><br/>You need to specify correct path to the data folder in web.config file (resides in web folder of WebMail Lite). You can learn more from our <a href=""http://www.afterlogic.com/support/faq-webmail-lite-asp-net#2"" target=_blank>FAQ</a>";

            _DataFolderLocationStyle = "border:1px solid #ff0000";

            tr_AdminPanelReadSettingsFile.Attributes["class"]     = "wm_hide";
            tr_AdminPanelSettingsFileLocation.Attributes["class"] = "wm_hide";
            tr_WebMailReadSettingsFile.Attributes["class"]        = "wm_hide";
            tr_WebMailSettingsFileLocation.Attributes["class"]    = "wm_hide";
            tr_CreatingDeletingFiles.Attributes["class"]          = "wm_hide";
            tr_CreatingDeletingFolders.Attributes["class"]        = "wm_hide";
        }

        try
        {
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            s.ReceiveTimeout = 1;
            s.Connect("localhost", 80);
            _Sockets    = @"<font color=""green"">OK</font>";
            var_sockets = "1";
        }
        catch (Exception error)
        {
            Log.WriteException(error);
            if (error is System.Security.SecurityException)
            {
                _Sockets        = @"<font color=""red"">No SocketPermission</font>";
                _SocketsMessage = "<br/>This means using sockets is prohibited. You should increase \"trust level\" in your ASP.NET configuration to \"Hight Trust\" or \"Full Trust\" or customize the current \"trust level\" to enable SocketPermission.<br/>To learn more, please refer to <a href=\"http://www.afterlogic.com/kb/articles/webmail-pro-aspnet-no-socketpermission-or-no-odbcpermission-errors-and-medium-trust-policy\" target=_blank>this</a> KB article.";
                _Error          = true;
            }
            else
            {
                _Sockets    = @"<font color=""green"">OK</font>";
                var_sockets = "1";
            }
        }

        try
        {
            OdbcConnection odbc1 = new OdbcConnection();
            odbc1.ConnectionTimeout = 1;
            odbc1.ConnectionString  = @"Driver=MySQL ODBC 3.51 Driver;Server=localhost;Port=3306;Database=webmail;User=user;Password=pass;Option=3;";
            odbc1.Open();
            _ODBC    = @"<font color=""green"">OK</font>";
            var_odbc = "1";
        }
        catch (Exception error)
        {
            Log.WriteException(error);
            if (error is System.Security.SecurityException)
            {
                _ODBC        = @"<font color=""red"">No OdbcPermission</font>";
                _ODBCMessage = "<br/>This means using ODBC driver is not allowed. You should increase \"trust level\" in your ASP.NET configuration to \"Hight Trust\" or \"Full Trust\" or customize the current \"trust level\" to enable OdbcPermission.<br/>To learn more, please refer to <a href=\"http://www.afterlogic.com/kb/articles/webmail-pro-aspnet-no-socketpermission-or-no-odbcpermission-errors-and-medium-trust-policy\" target=_blank>this</a> KB article.";
                _Error       = true;
            }
            else
            {
                _ODBC    = @"<font color=""green"">OK</font>";
                var_odbc = "1";
            }
        }

        if (_Error)
        {
            btnCheckName    = "Retry";
            btnCheckOnClick = "document.location='install.aspx?mode=check'";
            _divResult.Attributes["class"] = "wm_install_last_div_error";
            _ResultMessage = "Please make sure that all the requirements are met and click Retry.";
        }
        else
        {
            btnCheckName    = "Next";
            btnCheckOnClick = "document.location='install.aspx?mode=license'";
            _divResult.Attributes["class"] = "wm_install_last_div_ok";
            _ResultMessage = "The current server environment meets all the requirements. Click Next to proceed.";
        }

        var_str = "&var_sess=" + var_sess +
                  "&var_dfpath=" + var_dfpath +
                  "&var_cdfolders=" + var_cdfolders +
                  "&var_cdfiles=" + var_cdfiles +
                  "&var_apsfl=" + var_apsfl +
                  "&var_apsfread=" + var_apsfread +
                  "&var_apsfwrite=" + var_apsfwrite +
                  "&var_wmsfl=" + var_wmsfl +
                  "&var_wmsfread=" + var_wmsfread +
                  "&var_wmsfwrite=" + var_wmsfwrite +
                  "&var_sockets=" + var_sockets +
                  "&var_odbc=" + var_odbc;

        if (Session["EmptyKey"] == null)
        {
            _page.check_str = var_str;
        }
    }
Esempio n. 16
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);
    }
Esempio n. 17
0
    protected bool create_tables()
    {
        bool            errorFlag = false;
        WebmailSettings settings  = new WebmailSettings().CreateInstance(AdminPanelUtils.GetWebMailDataFolder());

        if (settings.DbType == SupportedDatabase.MsAccess)
        {
            return(false);
        }

        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,
            Constants.TablesNames.awm_subadmin_domains,
            Constants.TablesNames.awm_subadmins,
            /* Calendar Tables */
            Constants.TablesNames.acal_calendars,
            Constants.TablesNames.acal_events,
            Constants.TablesNames.acal_users_data,
            Constants.TablesNames.acal_publications,
            Constants.TablesNames.acal_sharing,
            Constants.TablesNames.acal_eventrepeats,
            Constants.TablesNames.acal_exclusions,
            Constants.TablesNames.acal_appointments,
            Constants.TablesNames.acal_cron_runs,
            Constants.TablesNames.acal_reminders
        };
        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);
            _errorMessage = @"<font color=""red"">" + Constants.mailAdmTablesNotCreated + ": " + error.Message + "</font>";
            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)
        {
            _errorMessage = @"<font color=""red"">The data tables with """ + prefix + @""" prefix already exist. To proceed, specify another prefix or delete the existing tables.</font>";
            errorFlag     = true;
        }
        else
        {
            try
            {
                storage.Connect();
                foreach (string name in tablesNames)
                {
                    try
                    {
                        storage.CreateTable(name, prefix);
                    }
                    catch (WebMailDatabaseException error)
                    {
                        Log.WriteException(error);
                        _errorMessage = @"<font color=""red"">" + Constants.mailAdmTablesNotCreated + ": " + error.Message + "</font>";
                        errorFlag     = true;
                    }
                }
            }
            catch (WebMailDatabaseException error)
            {
                Log.WriteException(error);
                _errorMessage = @"<font color=""red"">" + Constants.mailAdmTablesNotCreated + ": " + error.Message + "</font>";
                errorFlag     = true;
            }
            finally
            {
                storage.Disconnect();
            }
            if (!errorFlag)
            {
                _errorMessage = @"<font color=""green"">" + Constants.mailAdmTablesCreated + "</font>";
            }
        }
        return(errorFlag);
    }
Esempio n. 18
0
    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);
    }
Esempio n. 19
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;
        }
    }
Esempio n. 20
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;
    }
Esempio n. 21
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);
        }
    }
Esempio n. 22
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;
    }
Esempio n. 23
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;
        }
    }
Esempio n. 24
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;
    }