Exemple #1
0
        private void sslCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            if (protocolComboBox.SelectedItem.ToString() == ServersList.ProtocolOption.POP3.ToString())
            {
                portTextBox.Text = (sslCheckBox.Checked ? popSslPort : popPort);
            }
            else
            {
                portTextBox.Text = (sslCheckBox.Checked ? imapSslPort : imapPort);
            }

            if (m_serversListDgv.SelectedRows.Count > 0)
            {
                DataGridViewRow row    = m_serversListDgv.SelectedRows[0];
                int             idx    = row.Index;
                ServersList     server = (ServersList)row.DataBoundItem;
                if (sslCheckBox.Checked == true)
                {
                    server.UseSsl = true;
                }
                else
                {
                    server.UseSsl = false;
                }
                portTextBox_LostFocus(sender, e);
                m_servers.ResetItem(idx);
            }
        }
Exemple #2
0
        private void domainAppendCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            if (appendDomainCheckBox.Checked)
            {
                domainLabel.Enabled   = true;
                domainTextBox.Enabled = true;
            }
            else
            {
                domainLabel.Enabled   = false;
                domainTextBox.Enabled = false;
            }

            if (m_serversListDgv.SelectedRows.Count > 0)
            {
                DataGridViewRow row    = m_serversListDgv.SelectedRows[0];
                int             idx    = row.Index;
                ServersList     server = (ServersList)row.DataBoundItem;
                if (appendDomainCheckBox.Checked == true)
                {
                    server.AppendDomain = true;
                }
                else
                {
                    server.AppendDomain = false;
                }
                m_servers.ResetItem(idx);
            }
        }
Exemple #3
0
 void timeoutTextBox_LostFocus(object sender, EventArgs e)
 {
     if (m_serversListDgv.SelectedRows.Count > 0)
     {
         DataGridViewRow row    = m_serversListDgv.SelectedRows[0];
         int             idx    = row.Index;
         ServersList     server = (ServersList)row.DataBoundItem;
         server.Timeout = timeoutTextBox.Text;
         m_servers.ResetItem(idx);
     }
 }
Exemple #4
0
 void protocolComboBox_LostFocus(object sender, EventArgs e)
 {
     if (m_serversListDgv.SelectedRows.Count > 0)
     {
         DataGridViewRow row    = m_serversListDgv.SelectedRows[0];
         int             idx    = row.Index;
         ServersList     server = (ServersList)row.DataBoundItem;
         server.Protocol = (ServersList.ProtocolOption)Enum.Parse(typeof(ServersList.ProtocolOption), protocolComboBox.SelectedItem.ToString());
         m_servers.ResetItem(idx);
     }
 }
Exemple #5
0
        private void newServerButton_Click(object sender, EventArgs e)
        {
            if (validateFields())
            {
                ServersList server = new ServersList();

                m_servers.Add(server);
                protocolComboBox_SelectedIndexChanged(sender, e);

                m_serversListDgv.Rows[m_serversListDgv.Rows.Count - 1].Selected = true;
                m_serversListDgv.CurrentCell = m_serversListDgv.Rows[m_serversListDgv.Rows.Count - 1].Cells[0];
            }
        }
Exemple #6
0
        void m_serversListDgv_SelectionChanged(object sender, EventArgs e)
        {
            int numRowsSelected = m_serversListDgv.SelectedRows.Count;

            if (numRowsSelected == 0)
            {
                DisableAndClearAllEditFields();
            }
            else
            {
                DataGridViewRow row    = m_serversListDgv.SelectedRows[0];
                ServersList     server = (ServersList)row.DataBoundItem;
                SetEditFields(server);
                EnableEditFields();
            }
        }
Exemple #7
0
 private void SetEditFields(ServersList server)
 {
     protocolComboBox.SelectedItem = server.Protocol.ToString();
     serverTextBox.Text            = server.Server;
     portTextBox.Text = server.Port;
     if (server.UseSsl == true)
     {
         sslCheckBox.Checked = true;
     }
     else
     {
         sslCheckBox.Checked = false;
     }
     if (server.AppendDomain == false)
     {
         appendDomainCheckBox.Checked = false;
     }
     else
     {
         appendDomainCheckBox.Checked = true;
     }
     domainTextBox.Text  = server.Domain;
     timeoutTextBox.Text = server.Timeout;
 }
Exemple #8
0
        BooleanResult checkServer(ServersList email_server, SessionProperties properties)
        {
            try
            {
                m_logger.DebugFormat(email_server.Server + ": AuthenticateUser({0})", properties.Id.ToString());

                // Get user info, append domain if needed
                UserInformation userInfo     = properties.GetTrackedSingle <UserInformation>();
                bool            appendDomain = email_server.AppendDomain;
                string          username;
                if (email_server.AppendDomain)
                {
                    username = string.Format("{0}@{1}", userInfo.Username, (string)email_server.Domain);
                }
                else
                {
                    username = userInfo.Username;
                }

                int a = username.IndexOf('\\');
                if (a != -1)
                {
                    //m_logger.ErrorFormat("hay dominio: {0}", a);
                    username = username.Substring(a + 1);
                }

                // Place credentials into a NetworkCredentials object
                NetworkCredential creds = new NetworkCredential(username, userInfo.Password);

                string server   = email_server.Server;
                int    port     = Convert.ToInt32((string)email_server.Port);
                bool   useSsl   = email_server.UseSsl;
                string protocol = email_server.Protocol.ToString();
                int    timeout  = Convert.ToInt32((string)email_server.Timeout);

                //Connect to server
                using (Stream stream = getNetworkStream(server, port, useSsl, timeout))
                {
                    bool authenticated = false;

                    m_logger.DebugFormat(email_server.Server + ": Have network stream...");
                    //Authenticate based on protocol
                    if (protocol == "POP3")
                    {
                        authenticated = authPop3(stream, creds, email_server.Server);
                    }
                    else
                    {
                        authenticated = authImap(stream, creds, email_server.Server);
                    }

                    if (authenticated)
                    {
                        return(new BooleanResult()
                        {
                            Success = true
                        });
                    }
                }

                return(new BooleanResult()
                {
                    Success = false, Message = email_server.Server + ": Invalid username/password."
                });
            }
            catch (FormatException e)
            {
                //Likely thrown if the port number can not be converted to an integer
                m_logger.ErrorFormat(email_server.Server + ": Port number is not valid. Format exception: {0}", e);
                return(new BooleanResult()
                {
                    Success = false, Message = email_server.Server + ": Port number is not valid."
                });
            }
            catch (EMailAuthException e)
            {
                if (e.InnerException != null)
                {
                    m_logger.ErrorFormat(email_server.Server + ": Error: \"{0}\" caught because \"{1}\"", e.Message, e.InnerException.Message);
                }
                else
                {
                    m_logger.ErrorFormat(email_server.Server + ": Error: {0}", e.Message);
                }

                return(new BooleanResult()
                {
                    Success = false, Message = e.Message
                });
            }
            catch (Exception e)
            {
                m_logger.ErrorFormat(email_server.Server + ": Error: {0}", e);
                return(new BooleanResult {
                    Success = false, Message = email_server.Server + ": Unspecified Error occurred. " + e.Message
                });
            }
        }
Exemple #9
0
 private void SetEditFields(ServersList server)
 {
     protocolComboBox.SelectedItem = server.Protocol.ToString();
     serverTextBox.Text = server.Server;
     portTextBox.Text = server.Port;
     if (server.UseSsl == true)
         sslCheckBox.Checked = true;
     else
         sslCheckBox.Checked = false;
     if (server.AppendDomain == false)
         appendDomainCheckBox.Checked = false;
     else
         appendDomainCheckBox.Checked = true;
     domainTextBox.Text = server.Domain;
     timeoutTextBox.Text = server.Timeout;
 }
Exemple #10
0
        private void newServerButton_Click(object sender, EventArgs e)
        {
            if (validateFields())
            {
                ServersList server = new ServersList();

                m_servers.Add(server);
                protocolComboBox_SelectedIndexChanged(sender, e);

                m_serversListDgv.Rows[m_serversListDgv.Rows.Count - 1].Selected = true;
                m_serversListDgv.CurrentCell = m_serversListDgv.Rows[m_serversListDgv.Rows.Count - 1].Cells[0];
            }
        }
Exemple #11
0
        BooleanResult checkServer(ServersList email_server, SessionProperties properties)
        {
            try
            {
                m_logger.DebugFormat(email_server.Server + ": AuthenticateUser({0})", properties.Id.ToString());

                // Get user info, append domain if needed
                UserInformation userInfo = properties.GetTrackedSingle<UserInformation>();
                bool appendDomain = email_server.AppendDomain;
                string username;
                if (email_server.AppendDomain)
                {
                    username = string.Format("{0}@{1}", userInfo.Username, (string)email_server.Domain);
                }
                else
                {
                    username = userInfo.Username;
                }

                int a = username.IndexOf('\\');
                if (a != -1)
                {
                    //m_logger.ErrorFormat("hay dominio: {0}", a);
                    username = username.Substring(a + 1);
                }

                // Place credentials into a NetworkCredentials object
                NetworkCredential creds = new NetworkCredential(username, userInfo.Password);

                string server = email_server.Server;
                int port = Convert.ToInt32((string)email_server.Port);
                bool useSsl = email_server.UseSsl;
                string protocol = email_server.Protocol.ToString();
                int timeout = Convert.ToInt32((string)email_server.Timeout);

                //Connect to server
                using (Stream stream = getNetworkStream(server, port, useSsl, timeout))
                {
                    bool authenticated = false;

                    m_logger.DebugFormat(email_server.Server + ": Have network stream...");

                    //Authenticate based on protocol
                    if (protocol == "POP3")
                    {
                        authenticated = authPop3(stream, creds, email_server.Server);
                    }
                    else
                    {
                        authenticated = authImap(stream, creds, email_server.Server);
                    }

                    if (authenticated)
                    {
                        return new BooleanResult() { Success = true };
                    }
                }

                return new BooleanResult() { Success = false, Message = email_server.Server + ": Invalid username/password." };
            }
            catch (FormatException e)
            {
                //Likely thrown if the port number can not be converted to an integer
                m_logger.ErrorFormat(email_server.Server + ": Port number is not valid. Format exception: {0}", e);
                return new BooleanResult() { Success = false, Message = email_server.Server + ": Port number is not valid." };
            }
            catch (EMailAuthException e)
            {
                if (e.InnerException != null)
                    m_logger.ErrorFormat(email_server.Server + ": Error: \"{0}\" caught because \"{1}\"", e.Message, e.InnerException.Message);
                else
                    m_logger.ErrorFormat(email_server.Server + ": Error: {0}", e.Message);

                return new BooleanResult() { Success = false, Message = e.Message };
            }
            catch (Exception e)
            {
                m_logger.ErrorFormat(email_server.Server + ": Error: {0}", e);
                return new BooleanResult { Success = false, Message = email_server.Server + ": Unspecified Error occurred. " + e.Message };
            }
        }