protected int CreateNewEmail(string action, int existing_email_id) { string body = string.Empty; string subject = string.Empty; int language_id = 0; string type = string.Empty; string email_uri = string.Empty; if (action == "duplicate") { qCom_EmailItem email = new qCom_EmailItem(Convert.ToInt32(Request.QueryString["EmailID"])); if (email != null) { body = email.Draft; subject = "DUPLICATE - " + email.Subject; language_id = email.LanguageID; type = email.Type; email_uri = "DUPLICATE - " + email.URI; } } else { body = reContent.Content; subject = txtSubject.Text; email_uri = txtURI.Text; if (!String.IsNullOrEmpty(Convert.ToString(ddlEmailType.SelectedValue))) { type = Convert.ToString(ddlEmailType.SelectedValue); } if (!String.IsNullOrEmpty(Convert.ToString(ddlLanguages.SelectedValue))) { language_id = Convert.ToInt32(ddlLanguages.SelectedValue); } } qCom_EmailItem new_email = new qCom_EmailItem(); new_email.ScopeID = Convert.ToInt32(Context.Items["ScopeID"]); new_email.Available = "Yes"; new_email.Created = DateTime.Now; new_email.CreatedBy = Convert.ToInt32(Context.Items["UserID"]); new_email.LastModified = DateTime.Now; new_email.LastModifiedBy = Convert.ToInt32(Context.Items["UserID"]); new_email.MarkAsDelete = 0; new_email.Subject = subject; new_email.Draft = body; new_email.URI = email_uri; new_email.Type = type; new_email.LanguageID = language_id; if (!String.IsNullOrEmpty(Convert.ToString(ddlCampaigns.SelectedValue))) { new_email.CampaignID = Convert.ToInt32(ddlCampaigns.SelectedValue); } new_email.Insert(); return(new_email.EmailID); }
protected void btnDelete_Click(object sender, EventArgs e) { qCom_EmailItem email = new qCom_EmailItem(Convert.ToInt32(Request.QueryString["emailID"])); email.Available = "No"; email.MarkAsDelete = 1; email.Update(); Response.Redirect("emails-list.aspx"); }
protected void Page_Load(object sender, EventArgs e) { int language_id = 1; int emailID = (string.IsNullOrEmpty(Request.QueryString["emailID"])) ? 0 : Convert.ToInt32(Request.QueryString["emailID"]); int curr_email_id; var versions = qPtl_HTMLRevision.GetRevisions(emailID, "email", language_id); cmbRevisions.DataSource = versions; cmbRevisions.DataTextField = "VersionInfo"; cmbRevisions.DataValueField = "HTMLRevisionID"; cmbRevisions.DataBind(); if (!Page.IsPostBack) { populateCampaigns(); populateLanguages(); hplDuplicate.NavigateUrl = "email-edit.aspx?action=duplicate&emailID=" + emailID; hplTestSend.NavigateUrl = "test-send.aspx?emailID=" + emailID; //duplicate information and then if (emailID > 0 && Convert.ToString(Request.QueryString["action"]) == "duplicate") { curr_email_id = CreateNewEmail("duplicate", emailID); Response.Redirect("email-edit.aspx?emailID=" + curr_email_id); } else { curr_email_id = emailID; } if (Convert.ToString(Request.QueryString["message"]) == "duplicate-successful") { lblMessage.Text = "*** Email Successfully Duplicated ***"; } if (curr_email_id > 0) { qCom_EmailItem email = new qCom_EmailItem(Convert.ToInt32(Request.QueryString["emailID"])); txtURI.Text = email.URI; ddlLanguages.SelectedValue = Convert.ToString(email.LanguageID); ddlCampaigns.SelectedValue = Convert.ToString(email.CampaignID); ddlEmailType.SelectedValue = Convert.ToString(email.Type); txtSubject.Text = email.Subject; reContent.Content = email.Draft; lblTitle.Text = "Edit Email [ID: " + email.EmailID + " ]"; } else { lblTitle.Text = "Create Email"; } } }
protected void SendTaskEmail(int task_type_id, int created_by, int reference_id, string description) { string request_task_emails = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["TaskEmailList"]); qCom_EmailPreference preferences = new qCom_EmailPreference(); string system_from = preferences.FromName; string system_email_address = preferences.FromEmailAddress; int curr_email_id = 0; qPtl_User curr_user = new qPtl_User(created_by); if (!String.IsNullOrEmpty(request_task_emails)) { switch (task_type_id) { case 1: // review blog curr_email_id = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["report_blog_EmailID"])); break; case 2: // approve image curr_email_id = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["report_newpic_EmailID"])); break; case 3: // approve video curr_email_id = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["report_video_EmailID"])); break; case 4: // review site report curr_email_id = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["report_issue_EmailID"])); break; case 5: // review reported message curr_email_id = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["report_message_EmailID"])); break; case 6: // review banned word curr_email_id = Convert.ToInt32(Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["report_banned_word_EmailID"])); break; } qCom_EmailItem email = new qCom_EmailItem(curr_email_id); ArrayList addresses = new ArrayList(); q_Helper helper = new q_Helper(); addresses = helper.optionsToArrayList(request_task_emails); qCom_EmailTool email_send = new qCom_EmailTool(); int sent_email_log_id = 0; foreach (string address in addresses) { try { sent_email_log_id = email_send.SendDatabaseMail(address, curr_email_id, created_by, curr_user.UserName, Convert.ToString(reference_id), description, "", "", false); } catch { // email failure } } } }
private void SaveToDB(qCom_TempBulkEmailLog t_log, int email_item_id, string email) { int curr_log_id = 0; int i = 0; if( ( email==null) || ( email.Trim().Length == 0 ) ) return; var logs = qCom_EmailLog.GetEmailLogsByEmailItemIDANDEmail(email_item_id, email); if (logs != null) { foreach (var l in logs) { if (i == 0) curr_log_id = l.EmailLogID; i++; } } else { // log doesn't exist so create one qCom_EmailItem email_sent = new qCom_EmailItem(email_item_id); qCom_EmailLog log = new qCom_EmailLog(); log.ScopeID = 1; log.EmailItemID = email_item_id; log.UserID = 0; log.EmailAddress = email; log.Subject = email_sent.Subject; log.Timestamp = t_log.Timestamp; log.Insert(); curr_log_id = log.EmailLogID; } if (curr_log_id > 0) { qCom_EmailLog e_log = new qCom_EmailLog(curr_log_id); if (e_log.EmailLogID > 0) { e_log.ReadTime = DateTime.Now; e_log.Update(); } } }
protected void btnSave_OnClick(object sender, EventArgs e) { Page.Validate("form"); if (Page.IsValid) { int language_id = 1; int emailID = (string.IsNullOrEmpty(Request.QueryString["emailID"])) ? 0 : Convert.ToInt32(Request.QueryString["emailID"]); int curr_email_id = 0; int scopeID = Convert.ToInt32(Context.Items["ScopeID"]); int user_id = Convert.ToInt32(Context.Items["UserID"]); var last_version_number = qPtl_HTMLRevision.GetLastVersionNumber(emailID, "email", language_id); qPtl_User user = new qPtl_User(user_id); if (emailID > 0) { lblTitle.Text = "Edit Email"; qCom_EmailItem email = new qCom_EmailItem(emailID); email.URI = txtURI.Text; email.Subject = txtSubject.Text; if (!String.IsNullOrEmpty(Convert.ToString(ddlEmailType.SelectedValue))) { email.Type = Convert.ToString(ddlEmailType.SelectedValue); } if (!String.IsNullOrEmpty(Convert.ToString(ddlLanguages.SelectedValue))) { email.LanguageID = Convert.ToInt32(ddlLanguages.SelectedValue); } if (!String.IsNullOrEmpty(Convert.ToString(ddlCampaigns.SelectedValue))) { email.CampaignID = Convert.ToInt32(ddlCampaigns.SelectedValue); } email.Draft = reContent.Content; email.Update(); lblMessage.Text = "*** Email Successfully Saved at " + DateTime.Now + " ***"; curr_email_id = emailID; //Response.Redirect("~/qCom/email-list.aspx"); } else { int new_email_id = CreateNewEmail("new", -1); lblMessage.Text = "*** Email Successfully Created at " + DateTime.Now + " ***"; curr_email_id = new_email_id; //Response.Redirect("~/qCom/email-list.aspx"); } qPtl_HTMLRevision revision = new qPtl_HTMLRevision(); revision.Available = "Yes"; revision.ScopeID = Convert.ToInt32(Context.Items["ScopeID"]); revision.Created = DateTime.Now; revision.CreatedBy = user_id; revision.LastModified = DateTime.Now; revision.LastModifiedBy = user_id; revision.MarkAsDelete = 0; revision.ModuleInstanceID = curr_email_id; revision.SourceType = "email"; revision.HTML = reContent.Content; revision.VersionNumber = last_version_number + 1; revision.VersionInfo = "Version: " + revision.VersionNumber + " saved by " + user.FirstName + " " + user.LastName + " [" + user.UserName + "] at " + DateTime.Now; revision.LanguageID = language_id; revision.Insert(); } }
//Send to just one address with text replacement public int SendDatabaseMail(string address, int emailID, int userID, string userName, string value1, string value2, string value3, string value4, bool no_duplicates_today) { // get email info qCom_EmailTool email = new qCom_EmailTool(emailID); qCom_EmailItem full_email = new qCom_EmailItem(emailID); string header = string.Empty; string footer = string.Empty; string strFromEmail = string.Empty; string fromName = string.Empty; string emailUsername = null; string emailPassword = null; string emailServer = null; bool sslEnabled = false; int portNum = 0; string strDID = string.Empty; int return_email_log_id = 0; bool passed_send_checks = false; bool already_sent_today = true; string returnedEmail = string.Empty; bool ok_to_send = false; string noEmail = string.Empty; // Check to see if email already sent to user today if (no_duplicates_today == true) { var prior_current_day_log = qCom_EmailLog.CheckForEmailSentLastDay(address); if (prior_current_day_log == null) { already_sent_today = false; } } else { already_sent_today = false; } qCom_UserPreference_View u_pref = new qCom_UserPreference_View(address); if (u_pref.UserID > 0) { if (u_pref.OkBulkEmail == "Yes" || u_pref.OkEmail == "Yes") { ok_to_send = true; } } else ok_to_send = true; if (already_sent_today == false && ok_to_send == true) passed_send_checks = true; else passed_send_checks = false; qPtl_User user = new qPtl_User(Convert.ToInt32(userID)); if (user.UserID == 0) { user.Email = ""; user.FirstName = ""; user.LastName = ""; } // load default email preferences if (String.IsNullOrEmpty(emailServer)) { var email_pref = qCom_EmailPreference.GetEmailPreferences(); if (email_pref != null) { if (email_pref.EmailPreferencesID > 0) { header = email_pref.Header; footer = email_pref.Footer; strFromEmail = email_pref.FromEmailAddress; fromName = email_pref.FromName; emailServer = email_pref.SMTPServer; emailUsername = email_pref.SMTPUsername; emailPassword = email_pref.SMTPPassword; sslEnabled = email_pref.SMTPSSL; portNum = email_pref.SMTPPort; } } } // format as friendly send address string strFullEmail = string.Empty; if (!String.IsNullOrEmpty(fromName)) strFullEmail = fromName + " <" + strFromEmail + ">"; else strFullEmail = strFromEmail; string messageBody = header; messageBody += email.emailDraft; emailSubject = email.emailSubject; messageBody += footer; if (!String.IsNullOrEmpty(emailServer) && passed_send_checks == true) { SmtpClient emailClient = new SmtpClient(emailServer, portNum); emailClient.EnableSsl = sslEnabled; emailClient.DeliveryMethod = SmtpDeliveryMethod.Network; emailClient.Credentials = new System.Net.NetworkCredential(emailUsername, emailPassword); Regex emailCheck = new Regex("^.*<?[-a-zA-Z0-9!#$%&'*+/=?^_`{|}~]+(\\.[-a-zA-Z0-9!#$%&'*+/=?^_`{|}~]+)*@(([a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9]+)?){1,63}\\.)+([a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9]+)?){2,63}>?$"); // create temp bulk email log -- used for tracking (must be created before sent so can include id in message html) int t_log_id = 0; qCom_TempBulkEmailLog t_log = new qCom_TempBulkEmailLog(); t_log.EmailItemID = emailID; t_log.EmailAddress = strFullEmail; t_log.Timestamp = DateTime.Now; t_log.Insert(); t_log_id = t_log.TempBulkEmailLogID; if (emailCheck.IsMatch(address.ToLower())) { string finalBody = parseContentField(new string[] { Convert.ToString(user.UserID), userName, user.FirstName, user.LastName, user.Email, DateTime.Now.ToString(), value1, value2, value3, value4, strDID, Convert.ToString(emailID), Convert.ToString(t_log_id) }, messageBody); string finalSubject = parseContentField(new string[] { Convert.ToString(user.UserID), userName, user.FirstName, user.LastName, user.Email, DateTime.Now.ToString(), value1, value2, value3, value4, strDID, Convert.ToString(emailID), Convert.ToString(t_log_id) }, emailSubject); MailMessage mailout = new MailMessage(strFullEmail, address, finalSubject, finalBody); mailout.IsBodyHtml = true; emailClient.Send(mailout); return_email_log_id = AddTransmissionLog(scopeID, address, userID, "single", finalSubject, emailID, full_email.CampaignID, strFromEmail); } } return return_email_log_id; }
protected void btnSave_OnClick(object sender, EventArgs e) { Page.Validate("form"); if (Page.IsValid) { int language_id = 1; int emailID = (string.IsNullOrEmpty(Request.QueryString["emailID"])) ? 0 : Convert.ToInt32(Request.QueryString["emailID"]); int curr_email_id = 0; int scopeID = Convert.ToInt32(Context.Items["ScopeID"]); int user_id = Convert.ToInt32(Context.Items["UserID"]); var last_version_number = qPtl_HTMLRevision.GetLastVersionNumber(emailID, "email", language_id); qPtl_User user = new qPtl_User(user_id); if (emailID > 0) { lblTitle.Text = "Edit Email"; qCom_EmailItem email = new qCom_EmailItem(emailID); email.URI = txtURI.Text; email.Subject = txtSubject.Text; if (!String.IsNullOrEmpty(Convert.ToString(ddlEmailType.SelectedValue))) email.Type = Convert.ToString(ddlEmailType.SelectedValue); if (!String.IsNullOrEmpty(Convert.ToString(ddlLanguages.SelectedValue))) email.LanguageID = Convert.ToInt32(ddlLanguages.SelectedValue); if (!String.IsNullOrEmpty(Convert.ToString(ddlCampaigns.SelectedValue))) email.CampaignID = Convert.ToInt32(ddlCampaigns.SelectedValue); email.Draft = reContent.Content; email.Update(); lblMessage.Text = "*** Email Successfully Saved at " + DateTime.Now + " ***"; curr_email_id = emailID; //Response.Redirect("~/qCom/email-list.aspx"); } else { int new_email_id = CreateNewEmail("new", -1); lblMessage.Text = "*** Email Successfully Created at " + DateTime.Now + " ***"; curr_email_id = new_email_id; //Response.Redirect("~/qCom/email-list.aspx"); } qPtl_HTMLRevision revision = new qPtl_HTMLRevision(); revision.Available = "Yes"; revision.ScopeID = Convert.ToInt32(Context.Items["ScopeID"]); revision.Created = DateTime.Now; revision.CreatedBy = user_id; revision.LastModified = DateTime.Now; revision.LastModifiedBy = user_id; revision.MarkAsDelete = 0; revision.ModuleInstanceID = curr_email_id; revision.SourceType = "email"; revision.HTML = reContent.Content; revision.VersionNumber = last_version_number + 1; revision.VersionInfo = "Version: " + revision.VersionNumber + " saved by " + user.FirstName + " " + user.LastName + " [" + user.UserName + "] at " + DateTime.Now; revision.LanguageID = language_id; revision.Insert(); } }
protected void Page_Load(object sender, EventArgs e) { int language_id = 1; int emailID = (string.IsNullOrEmpty(Request.QueryString["emailID"])) ? 0 : Convert.ToInt32(Request.QueryString["emailID"]); int curr_email_id; var versions = qPtl_HTMLRevision.GetRevisions(emailID, "email", language_id); cmbRevisions.DataSource = versions; cmbRevisions.DataTextField = "VersionInfo"; cmbRevisions.DataValueField = "HTMLRevisionID"; cmbRevisions.DataBind(); if (!Page.IsPostBack) { populateCampaigns(); populateLanguages(); hplDuplicate.NavigateUrl = "email-edit.aspx?action=duplicate&emailID=" + emailID; hplTestSend.NavigateUrl = "test-send.aspx?emailID=" + emailID; //duplicate information and then if (emailID > 0 && Convert.ToString(Request.QueryString["action"]) == "duplicate") { curr_email_id = CreateNewEmail("duplicate", emailID); Response.Redirect("email-edit.aspx?emailID=" + curr_email_id); } else { curr_email_id = emailID; } if (Convert.ToString(Request.QueryString["message"]) == "duplicate-successful") { lblMessage.Text = "*** Email Successfully Duplicated ***"; } if (curr_email_id > 0) { qCom_EmailItem email = new qCom_EmailItem(Convert.ToInt32(Request.QueryString["emailID"])); txtURI.Text = email.URI; ddlLanguages.SelectedValue = Convert.ToString(email.LanguageID); ddlCampaigns.SelectedValue = Convert.ToString(email.CampaignID); ddlEmailType.SelectedValue = Convert.ToString(email.Type); txtSubject.Text = email.Subject; reContent.Content = email.Draft; lblTitle.Text = "Edit Email [ID: " + email.EmailID + " ]"; } else lblTitle.Text = "Create Email"; } }
protected int CreateNewEmail(string action, int existing_email_id) { string body = string.Empty; string subject = string.Empty; int language_id = 0; string type = string.Empty; string email_uri = string.Empty; if (action == "duplicate") { qCom_EmailItem email = new qCom_EmailItem(Convert.ToInt32(Request.QueryString["EmailID"])); if (email != null) { body = email.Draft; subject = "DUPLICATE - " + email.Subject; language_id = email.LanguageID; type = email.Type; email_uri = "DUPLICATE - " + email.URI; } } else { body = reContent.Content; subject = txtSubject.Text; email_uri = txtURI.Text; if (!String.IsNullOrEmpty(Convert.ToString(ddlEmailType.SelectedValue))) type = Convert.ToString(ddlEmailType.SelectedValue); if (!String.IsNullOrEmpty(Convert.ToString(ddlLanguages.SelectedValue))) language_id = Convert.ToInt32(ddlLanguages.SelectedValue); } qCom_EmailItem new_email = new qCom_EmailItem(); new_email.ScopeID = Convert.ToInt32(Context.Items["ScopeID"]); new_email.Available = "Yes"; new_email.Created = DateTime.Now; new_email.CreatedBy = Convert.ToInt32(Context.Items["UserID"]); new_email.LastModified = DateTime.Now; new_email.LastModifiedBy = Convert.ToInt32(Context.Items["UserID"]); new_email.MarkAsDelete = 0; new_email.Subject = subject; new_email.Draft = body; new_email.URI = email_uri; new_email.Type = type; new_email.LanguageID = language_id; if (!String.IsNullOrEmpty(Convert.ToString(ddlCampaigns.SelectedValue))) new_email.CampaignID = Convert.ToInt32(ddlCampaigns.SelectedValue); new_email.Insert(); return new_email.EmailID; }