/// <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>"; } }