/// <summary>
        /// The SubmitBtn_Click server event handler on this page is used
        /// to handle the scenario where a user clicks the "send"
        /// button after entering a response to a message post.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
        private void submitButton_Click(object sender, EventArgs e)
        {
            string message;
            int cnt = 0;
            EditPanel.Visible = false;
            PrewiewPanel.Visible = true;
            UsersPanel.Visible = false;

            message = General.GetString("NEWSLETTER_SENDTO", "<b>Message:</b> sent to:<br>");

            try
            {
                NewsletterDB newsletter = new NewsletterDB();
                if (!bool.Parse(Settings["TestMode"].ToString()))
                {
                    // Get Newsletter Users from DB
                    var users = newsletter.GetUsersNewsletter(this.PortalSettings.PortalID);
                    foreach (dynamic user in users)
                    {
                        cnt++;
                        message += user.Email + ", ";
                        try
                        {
                            //Send the email
                            newsletter.SendMessage(txtEMail.Text, user.Email, user.Name, txtSubject.Text,
                                                    txtBody.Text, true, HtmlMode.Checked, InsertBreakLines.Checked);
                            // Here the systems used to notify the DB that an email was sent to the user.
                            // Since we implemented the MembershipProvider for Appleseed, we doesn't have a place to store this info,
                            // thus, now the fact that an email was sent won't be persisted in the DB. However this should change in future releases.
                        }
                        catch (Exception ex)
                        {
                            InvalidRecipients += user.Email + "<br/>";
                            BlacklistDB.AddToBlackList(this.PortalSettings.PortalID, user.Email, ex.Message);
                        }
                    }
                    lblMessage.Text =
                        General.GetString("NEWSLETTER_SENDINGTO", "Message has been sent to {1} registered users.").
                            Replace("{1}", cnt.ToString());
                }
                else
                {
                    newsletter.SendMessage(txtEMail.Text, txtEMail.Text, txtName.Text, txtSubject.Text,
                                           txtBody.Text, true, HtmlMode.Checked, InsertBreakLines.Checked);
                    lblMessage.Text = General.GetString("NEWSLETTER_TESTSENDTO", "Test message sent to: ") +
                                      txtName.Text + " [" + txtEMail.Text + "]";
                }
            }
            catch (Exception ex)
            {
                lblMessage.Text = General.GetString("NEWSLETTER_ERROR", "An error occurred: ") + ex.Message;
            }

            CreatedDate.Text = General.GetString("NEWSLETTER_SENDDATE", "Message sent: ") +
                               DateTime.Now.ToLongDateString() + "<br>";

            if (InvalidRecipients.Length > 0)
                CreatedDate.Text += General.GetString("NEWSLETTER_INVALID_RECIPIENTS", "Invalid recipients:<br>") +
                                    InvalidRecipients;

            //Hides commands
            submitButton.Visible = false;
            cancelButton2.Visible = false;
        }
        /// <summary>
        /// The previewButton_Click server event handler on this page is used
        /// to handle the scenario where a user clicks the "preview"
        /// button to see a preview of the message.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param>
        private void previewButton_Click(object sender, EventArgs e)
        {
            CreatedDate.Text = General.GetString("NEWSLETTER_LOCALTIME", "Local time: ") +
                               DateTime.Now.ToLongDateString();

            NewsletterDB newsletter = new NewsletterDB();

            string email;
            string name;

            if (!bool.Parse(Settings["TestMode"].ToString()))
            {
                var users = newsletter.GetUsersNewsletter(this.PortalSettings.PortalID);
                if (users.Count > 0)
                {
                    email = users[0].Email;
                    name = users[0].Name;
                }
                else
                {
                    lblMessage.Text = General.GetString("NEWSLETTER_NORECIPIENTS", "No recipients");
                    return; //nothing more to do here
                }
            }
            else
            {
                email = txtEMail.Text;
                name = txtName.Text;
            }

            EditPanel.Visible = false;
            PrewiewPanel.Visible = true;
            UsersPanel.Visible = false;
            lblFrom.Text = txtName.Text + " (" + txtEMail.Text + ")";
            lblTo.Text = name + " (" + email + ")";
            lblSubject.Text = txtSubject.Text;
            string body =
                newsletter.SendMessage(txtEMail.Text, email, name, txtSubject.Text, txtBody.Text,
                                       false, HtmlMode.Checked, InsertBreakLines.Checked);
            if (HtmlMode.Checked)
            {
                lblBody.Text = body;
            }
            else
            {
                lblBody.Text = "<PRE>" + body + "</PRE>";
            }
        }