/// <summary>
        /// Loads data to UI.
        /// </summary>
        private void LoadData()
        {
            try{
                SMTP_Settings settings = m_pVirtualServer.SystemSettings.SMTP;

                m_pEnabled.Checked       = settings.Enabled;
                m_pGreetingText.Text     = settings.GreetingText;
                m_pDefaultDomain.Text    = settings.DefaultDomain;
                m_pSessionTimeout.Value  = settings.SessionIdleTimeOut;
                m_pMaxConnections.Value  = settings.MaximumConnections;
                m_pMaxConnsPerIP.Value   = settings.MaximumConnectionsPerIP;
                m_pMaxBadCommands.Value  = settings.MaximumBadCommands;
                m_pMaxMessageSize.Value  = settings.MaximumMessageSize;
                m_pMaxRecipients.Value   = settings.MaximumRecipientsPerMessage;
                m_pMaxTransactions.Value = settings.MaximumTransactions;
                m_pRequireAuth.Checked   = settings.RequireAuthentication;

                foreach (IPBindInfo binding in settings.Binds)
                {
                    ListViewItem it = new ListViewItem();
                    it.Text = binding.HostName;
                    if (binding.IP.ToString() == "0.0.0.0")
                    {
                        it.SubItems.Add("Any IPv4");
                    }
                    else if (binding.IP.ToString() == "0:0:0:0:0:0:0:0")
                    {
                        it.SubItems.Add("Any IPv6");
                    }
                    else
                    {
                        it.SubItems.Add(binding.IP.ToString());
                    }
                    it.SubItems.Add(binding.Port.ToString());
                    it.SubItems.Add(binding.SslMode.ToString());
                    it.SubItems.Add(Convert.ToString(binding.Certificate != null));
                    it.Tag = binding;
                    m_pTabGeneral_Bindings.Items.Add(it);
                }

                m_pTabGeneral_Bindings_SelectedIndexChanged(this, new EventArgs());
            }
            catch (Exception x) {
                wfrm_sys_Error frm = new wfrm_sys_Error(x, new System.Diagnostics.StackTrace());
                frm.ShowDialog(this);
            }
        }
        /// <summary>
        /// Saves data.
        /// </summary>
        /// <param name="confirmSave">Specifies is save confirmation UI is showed.</param>
        private void SaveData(bool confirmSave)
        {
            try{
                SMTP_Settings settings = m_pVirtualServer.SystemSettings.SMTP;

                settings.Enabled                     = m_pEnabled.Checked;
                settings.GreetingText                = m_pGreetingText.Text;
                settings.DefaultDomain               = m_pDefaultDomain.Text;
                settings.SessionIdleTimeOut          = (int)m_pSessionTimeout.Value;
                settings.MaximumConnections          = (int)m_pMaxConnections.Value;
                settings.MaximumConnectionsPerIP     = (int)m_pMaxConnsPerIP.Value;
                settings.MaximumBadCommands          = (int)m_pMaxBadCommands.Value;
                settings.MaximumMessageSize          = (int)m_pMaxMessageSize.Value;
                settings.MaximumRecipientsPerMessage = (int)m_pMaxRecipients.Value;
                settings.MaximumTransactions         = (int)m_pMaxTransactions.Value;
                settings.RequireAuthentication       = m_pRequireAuth.Checked;
                // IP binds
                List <IPBindInfo> binds = new List <IPBindInfo>();
                foreach (ListViewItem it in m_pTabGeneral_Bindings.Items)
                {
                    binds.Add((IPBindInfo)it.Tag);
                }
                settings.Binds = binds.ToArray();

                if (m_pVirtualServer.SystemSettings.HasChanges)
                {
                    if (!confirmSave || MessageBox.Show(this, "You have changes settings, do you want to save them ?", "Confirm:", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        m_pVirtualServer.SystemSettings.Commit();
                    }
                }
            }
            catch (Exception x) {
                wfrm_sys_Error frm = new wfrm_sys_Error(x, new System.Diagnostics.StackTrace());
                frm.ShowDialog(this);
            }
        }