private void SendRejectionNotification( SmtpSettings smtpSettings, SiteSettings siteSettings, DateTime?requestedUtc, SiteUser rejectingUser, string rejectionReason ) { string requestedDate = string.Empty; if (requestedUtc.HasValue) { requestedDate = DateTimeHelper.GetLocalTimeString(requestedUtc, SiteUtils.GetUserTimeZone(), SiteUtils.GetUserTimeOffset()); } StringBuilder message = new StringBuilder(); message.Append(MessageTemplate.GetMessage("ApprovalRequestRejectionNotification")); message.Replace("{Title}", news.Title); message.Replace("{ApprovalRequestedDate}", requestedDate); message.Replace("{RejectionReason}", rejectionReason); message.Replace("{RejectedBy}", rejectingUser.Name); if (!Email.IsValidEmailAddressSyntax(news.UserEmail)) { //invalid address log it log.Error("Failed to send workflow rejection message, invalid recipient email " + news.UserEmail + " message was " + message.ToString()); return; } EmailMessageTask messageTask = new EmailMessageTask(smtpSettings); messageTask.SiteGuid = siteSettings.SiteGuid; messageTask.EmailFrom = siteSettings.DefaultEmailFromAddress; messageTask.EmailFromAlias = siteSettings.DefaultFromEmailAlias; messageTask.EmailReplyTo = rejectingUser.Email; messageTask.EmailTo = news.UserEmail; messageTask.UseHtml = true; messageTask.Subject = MessageTemplate.GetMessage("ApprovalRequestRejectionNotificationSubject").Replace("{SiteName}", siteSettings.SiteName); messageTask.HtmlBody = message.ToString(); messageTask.QueueTask(); WebTaskManager.StartOrResumeTasks(); //Email.Send( // smtpSettings, // siteSettings.DefaultEmailFromAddress, // siteSettings.DefaultFromEmailAlias, // rejectingUser.Email, // news.UserEmail, // string.Empty, // string.Empty, // MessageTemplate.GetMessage("ApprovalRequestRejectionNotificationSubject").Replace("{SiteName}", siteSettings.SiteName), // message.ToString(), // false, // Email.PriorityNormal); }
public override void UserRegisteredHandler(object sender, UserRegisteredEventArgs e) { if (e == null) { return; } if (e.SiteUser == null) { return; } SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); log.Debug("NotifyUserRegisteredHandler called for new user " + e.SiteUser.Email); if (HttpContext.Current == null) { return; } if (siteSettings.UseSecureRegistration) { return; } EmailTemplate template = EmailTemplate.Get(siteSettings.SiteId, "RegisterEmailNotification"); if (template == null || template.Guid == Guid.Empty) { return; } string fromEmailAlias = (template.FromName.Length > 0 ? template.FromName : siteSettings.DefaultFromEmailAlias); SmtpSettings smtpSettings = SiteUtils.GetSmtpSettings(); string toEmail = e.SiteUser.Email; if (template.ToAddresses.Length > 0) { toEmail += ";" + template.ToAddresses; } EmailMessageTask messageTask = new EmailMessageTask(smtpSettings); messageTask.SiteGuid = siteSettings.SiteGuid; messageTask.EmailFrom = siteSettings.DefaultEmailFromAddress; messageTask.EmailFromAlias = (template.FromName.Length > 0 ? template.FromName : siteSettings.DefaultFromEmailAlias); messageTask.EmailReplyTo = template.ReplyToAddress; messageTask.EmailTo = toEmail; messageTask.EmailCc = template.CcAddresses; messageTask.EmailBcc = template.BccAddresses; messageTask.UseHtml = true; messageTask.Subject = template.Subject.Replace("{Email}", e.SiteUser.Email).Replace("{FirstName}", e.SiteUser.FirstName).Replace("{LastName}", e.SiteUser.LastName); messageTask.HtmlBody = template.HtmlBody.Replace("{SiteName}", siteSettings.SiteName).Replace("{Email}", e.SiteUser.Email).Replace("{FirstName}", e.SiteUser.FirstName).Replace("{LastName}", e.SiteUser.LastName).Replace("{Username}", e.SiteUser.Name).Replace("{Password}", e.SiteUser.Password); messageTask.QueueTask(); WebTaskManager.StartOrResumeTasks(); }
public static void SendCommentNotification(string toEmail) { //added this due to product comment spam and need to be able to ban the ip of the spammer StringBuilder messageToken = new StringBuilder(); //messageToken.Append(basePage.SiteRoot + product.Url.Replace("~", string.Empty)); messageToken.Append("\n\nHTTP_USER_AGENT: " + HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"] + "\n"); messageToken.Append("HTTP_HOST: " + HttpContext.Current.Request.ServerVariables["HTTP_HOST"] + "\n"); messageToken.Append("REMOTE_HOST: " + HttpContext.Current.Request.ServerVariables["REMOTE_HOST"] + "\n"); messageToken.Append("REMOTE_ADDR: " + SiteUtils.GetIP4Address() + "\n"); messageToken.Append("LOCAL_ADDR: " + HttpContext.Current.Request.ServerVariables["LOCAL_ADDR"] + "\n"); messageToken.Append("HTTP_REFERER: " + HttpContext.Current.Request.ServerVariables["HTTP_REFERER"] + "\n"); SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); if ((toEmail.Length > 0) && (Email.IsValidEmailAddressSyntax(toEmail))) { EmailTemplate template = EmailTemplate.Get(siteSettings.SiteId, "ProductCommentNotification"); string fromAddress = siteSettings.DefaultEmailFromAddress; string fromAlias = template.FromName; if (fromAlias.Length == 0) { fromAlias = siteSettings.DefaultFromEmailAlias; } if (template.ToAddresses.Length > 0) { toEmail += ";" + template.ToAddresses; } SmtpSettings smtpSettings = SiteUtils.GetSmtpSettings(); StringBuilder message = new StringBuilder(); message.Append(template.HtmlBody); message.Replace("{SiteName}", siteSettings.SiteName); message.Replace("{Message}", messageToken.ToString()); string subject = template.Subject.Replace("{SiteName}", siteSettings.SiteName); EmailMessageTask messageTask = new EmailMessageTask(smtpSettings); messageTask.SiteGuid = siteSettings.SiteGuid; messageTask.EmailFrom = fromAddress; messageTask.EmailFromAlias = fromAlias; messageTask.EmailReplyTo = template.ReplyToAddress; messageTask.EmailTo = toEmail; messageTask.EmailCc = template.CcAddresses; messageTask.EmailBcc = template.BccAddresses; messageTask.UseHtml = true; messageTask.Subject = subject; messageTask.HtmlBody = message.ToString(); messageTask.QueueTask(); WebTaskManager.StartOrResumeTasks(); } }
private bool sendmail(string authorname, string mailto) { try { EmailTemplate template = EmailTemplate.Get(siteSettings.SiteId, "EmailRegisterAuthor", WorkingCulture.LanguageId); string subjectEmail = template.Subject.Replace("{SiteName}", siteSettings.SiteName); System.Text.StringBuilder messageEmail = new System.Text.StringBuilder(); messageEmail.Append(template.HtmlBody); messageEmail.Replace("{Name}", authorname); string fromAddress = siteSettings.DefaultEmailFromAddress; string fromAlias = template.FromName; if (fromAlias.Length == 0) { fromAlias = siteSettings.DefaultFromEmailAlias; } string emailTo = (template.ToAddresses.Length > 0 ? ";" + template.ToAddresses : ""); string emailCc = template.CcAddresses; string emailBcc = template.BccAddresses; string emailReplyTo = (template.ReplyToAddress.Length > 0 ? ";" + template.ReplyToAddress : ""); SmtpSettings smtpSettings = SiteUtils.GetSmtpSettings(); EmailMessageTask messageTask = new EmailMessageTask(smtpSettings); messageTask.SiteGuid = siteSettings.SiteGuid; messageTask.EmailFrom = fromAddress; messageTask.EmailFromAlias = fromAlias; messageTask.EmailReplyTo = emailReplyTo; messageTask.EmailTo = mailto; messageTask.EmailCc = emailCc; messageTask.EmailBcc = emailBcc; messageTask.Subject = subjectEmail; messageTask.UseHtml = true; messageTask.HtmlBody = messageEmail.ToString(); messageTask.QueueTask(); WebTaskManager.StartOrResumeTasks(); return(true); } catch (Exception) { return(false); } }
//public static Module FindAuthorModule(PageSettings currentPage) //{ // foreach (Module m in currentPage.Modules) // { // if (m.FeatureGuid == Author.FeatureGuid) return m; // if (m.ControlSource == "Author/AuthorModule.ascx") return m; // } // return null; //} public static void SendCommentNotification( SmtpSettings smtpSettings, Guid siteGuid, string fromAddress, string fromAlias, string toEmail, string replyEmail, string ccEmail, string bccEmail, string subject, string messageTemplate, string siteName, string messageToken) { if (string.IsNullOrEmpty(messageTemplate)) { return; } StringBuilder message = new StringBuilder(); message.Append(messageTemplate); message.Replace("{SiteName}", siteName); message.Replace("{Message}", messageToken); subject = subject.Replace("{SiteName}", siteName); //try //{ // Email.SendEmail( // smtpSettings, // fromAddress, // toEmail, // replyEmail, // ccEmail, // bccEmail, // subject, // message.ToString(), // true, // "Normal"); //} //catch (Exception ex) //{ // log.Error("Error sending email from address was " + fromAddress + " to address was " + toEmail, ex); //} EmailMessageTask messageTask = new EmailMessageTask(smtpSettings); messageTask.SiteGuid = siteGuid; messageTask.EmailFrom = fromAddress; messageTask.EmailFromAlias = fromAlias; messageTask.EmailReplyTo = replyEmail; messageTask.EmailTo = toEmail; messageTask.EmailCc = ccEmail; messageTask.EmailBcc = bccEmail; messageTask.UseHtml = true; messageTask.Subject = subject; messageTask.HtmlBody = message.ToString(); messageTask.QueueTask(); WebTaskManager.StartOrResumeTasks(); }
public static void SendApprovalRequestNotification( SmtpSettings smtpSettings, SiteSettings siteSettings, int workflowId, SiteUser submittingUser, News draftNews ) { if (!draftNews.StateId.HasValue) { return; } WorkflowState workflowState = WorkflowHelper.GetWorkflowState(workflowId, draftNews.StateId.Value); if (workflowState == null || workflowState.StateId == -1) { return; } if (workflowState.ReviewRoles.Length == 0 || workflowState.NotifyTemplate.Length == 0) //"ApprovalRequestNotification" { return; } string approvalRoles = workflowState.ReviewRoles; gbSiteMapNode gbNode = SiteUtils.GetSiteMapNodeByZoneId(draftNews.ZoneID); if (gbNode != null) { List <string> authorizedRoles = gbNode.AuthorizedRoles.SplitOnCharAndTrim(';'); List <string> reviewRoles = workflowState.ReviewRoles.SplitOnCharAndTrim(';'); if (authorizedRoles.Count > 0 && reviewRoles.Count > 0) { approvalRoles = string.Empty; foreach (string reviewRole in reviewRoles) { foreach (string role in authorizedRoles) { if (reviewRole.ToLower() == role.ToLower()) { approvalRoles += reviewRole + ";"; } } } } } List <string> emailAddresses = SiteUser.GetEmailAddresses(siteSettings.SiteId, approvalRoles); int queuedMessageCount = 0; EmailTemplate template = EmailTemplate.Get(siteSettings.SiteId, workflowState.NotifyTemplate); string subject = template.Subject.Replace("{SiteName}", siteSettings.SiteName); string messageTemplate = template.HtmlBody; List <string> emailTo = (template.ToAddresses.Length > 0 ? ";" + template.ToAddresses : "").SplitOnCharAndTrim(';'); string emailToAddress = string.Empty; foreach (string email in emailAddresses) { if (WebConfigSettings.EmailAddressesToExcludeFromAdminNotifications.IndexOf(email, StringComparison.InvariantCultureIgnoreCase) > -1) { continue; } if (!Email.IsValidEmailAddressSyntax(email)) { continue; } if (!emailToAddress.Contains(email + ";")) { emailToAddress += email + ";"; } } foreach (string email in emailTo) { if (WebConfigSettings.EmailAddressesToExcludeFromAdminNotifications.IndexOf(email, StringComparison.InvariantCultureIgnoreCase) > -1) { continue; } if (!Email.IsValidEmailAddressSyntax(email)) { continue; } if (!emailToAddress.Contains(email + ";")) { emailToAddress += email + ";"; } } string replyEmail = submittingUser.Email; if (template.ReplyToAddress.Length > 0) { replyEmail += ";" + template.ReplyToAddress; } string fromEmailAlias = (template.FromName.Length > 0 ? template.FromName : siteSettings.DefaultFromEmailAlias); StringBuilder message = new StringBuilder(); message.Append(messageTemplate); message.Replace("{Title}", draftNews.Title); message.Replace("{SubmittedDate}", DateTimeHelper.GetLocalTimeString(draftNews.ApprovedUtc, SiteUtils.GetUserTimeZone(), SiteUtils.GetUserTimeOffset())); message.Replace("{SubmittedBy}", submittingUser.Name); message.Replace("{ContentUrl}", NewsHelper.FormatNewsUrl(draftNews.Url, draftNews.NewsID, draftNews.ZoneID)); EmailMessageTask messageTask = new EmailMessageTask(smtpSettings); messageTask.SiteGuid = siteSettings.SiteGuid; messageTask.EmailFrom = siteSettings.DefaultEmailFromAddress; messageTask.EmailFromAlias = fromEmailAlias; messageTask.EmailReplyTo = replyEmail; messageTask.EmailTo = emailToAddress; messageTask.EmailCc = template.CcAddresses; messageTask.EmailBcc = template.BccAddresses; messageTask.UseHtml = true; messageTask.Subject = subject; messageTask.HtmlBody = message.ToString(); messageTask.QueueTask(); queuedMessageCount += 1; //Email.Send( // smtpSettings, // siteSettings.DefaultEmailFromAddress, // siteSettings.DefaultFromEmailAlias, // submittingUser.Email, // email, // string.Empty, // string.Empty, // messageSubject, // message.ToString(), // false, // Email.PriorityNormal); WebTaskManager.StartOrResumeTasks(); }
private void DoSubscribe(LetterInfo letter, string email) { LetterSubscriber s = subscriptions.Fetch(siteSettings.SiteGuid, letter.LetterInfoGuid, email); bool needToSendVerification = false; if (s == null) { s = new LetterSubscriber(); s.SiteGuid = siteSettings.SiteGuid; s.EmailAddress = email; s.LetterInfoGuid = letter.LetterInfoGuid; if (showFormatOptions) { s.UseHtml = rbHtmlFormat.Checked; } else { s.UseHtml = htmlIsDefault; } if ((currentUser != null) && (string.Equals(currentUser.Email, email, StringComparison.InvariantCultureIgnoreCase))) { s.UserGuid = currentUser.UserGuid; s.IsVerified = true; } else { // user is not authenticated but may still exist // attach userguid but don't flag as verified // because we don't know that the user who submited the form is the account owner SiteUser siteUser = SiteUser.GetByEmail(siteSettings, email); if (siteUser != null) { s.UserGuid = siteUser.UserGuid; } } s.IpAddress = SiteUtils.GetIP4Address(); subscriptions.Save(s); LetterInfo.UpdateSubscriberCount(s.LetterInfoGuid); if (!s.IsVerified) { needToSendVerification = true; } } else { // we found an existing subscription if (!s.IsVerified) { // if the current authenticated user has the same email mark it as verified if ((currentUser != null) && (string.Equals(currentUser.Email, email, StringComparison.InvariantCultureIgnoreCase))) { s.UserGuid = currentUser.UserGuid; if (showFormatOptions) { s.UseHtml = rbHtmlFormat.Checked; } subscriptions.Save(s); subscriptions.Verify(s.SubscribeGuid, true, Guid.Empty); } else if (s.BeginUtc < DateTime.UtcNow.AddDays(-WebConfigSettings.NewsletterReVerifcationAfterDays)) { // if the user never verifed before and its been at least x days go ahead and send another chance to verify needToSendVerification = true; // TODO: maybe we should log this in case some spam script is using the same email over and over // or maybe we should add a verification sent count on subscription } } } if (needToSendVerification) { string verificationTemplate = ResourceHelper.GetMessageTemplate(SiteUtils.GetDefaultCulture(), "NewsletterVerificationEmailMessage.config"); string confirmLink = siteRoot + "/eletter/Confirm.aspx?s=" + s.SubscribeGuid.ToString(); string messageBody = verificationTemplate.Replace("{NewsletterName}", letter.Title).Replace("{ConfirmationLink}", confirmLink).Replace("{SiteLink}", siteRoot); string subject = string.Format(CultureInfo.InvariantCulture, Resource.NewsletterVerifySubjectFormat, letter.Title); EmailMessageTask messageTask = new EmailMessageTask(SiteUtils.GetSmtpSettings()); messageTask.SiteGuid = siteSettings.SiteGuid; if (letter.FromAddress.Length > 0) { messageTask.EmailFrom = letter.FromAddress; } else { messageTask.EmailFrom = siteSettings.DefaultEmailFromAddress; } messageTask.EmailTo = email; messageTask.Subject = subject; messageTask.TextBody = messageBody; messageTask.QueueTask(); WebTaskManager.StartOrResumeTasks(); } }
private void btnSend_Click(object sender, EventArgs e) { bool isValid = true; reqEmail.Validate(); if (!reqEmail.IsValid) { isValid = false; } regexEmail.Validate(); if (!regexEmail.IsValid) { isValid = false; } reqToEmail.Validate(); if (!reqToEmail.IsValid) { isValid = false; } regexToEmail.Validate(); if (!regexToEmail.IsValid) { isValid = false; } if (isValid) { //string messageTemplate = MessageTemplate.GetMessage("EmailSubjectNotification"); //string url = WebUtils.ParseStringFromQueryString("u", string.Empty); //StringBuilder message = new StringBuilder(); //message.Append(messageTemplate); //message.Replace("{SiteName}", siteSettings.SiteName); //message.Replace("{Name}", txtName.Text); //message.Replace("{Email}", txtEmail.Text); //message.Replace("{Link}", url); //message.Replace("{Message}", txtMessage.Text); //string fromAddress = siteSettings.DefaultEmailFromAddress; EmailTemplate template = EmailTemplate.Get(siteSettings.SiteId, "EmailSubjectNotification", WorkingCulture.LanguageId); string subjectEmail = template.Subject.Replace("{SiteName}", siteSettings.SiteName).Replace("{Subject}", txtSubject.Text.Trim()); string url = WebUtils.ParseStringFromQueryString("u", string.Empty); StringBuilder message = new StringBuilder(); message.Append(template.HtmlBody); message.Replace("{SiteName}", siteSettings.SiteName); message.Replace("{Name}", txtName.Text); message.Replace("{Email}", txtEmail.Text); message.Replace("{Link}", url); message.Replace("{Message}", txtMessage.Text); string fromAddress = siteSettings.DefaultEmailFromAddress; string fromAlias = template.FromName; if (fromAlias.Length == 0) { fromAlias = siteSettings.DefaultFromEmailAlias; } string emailTo = (template.ToAddresses.Length > 0 ? ";" + template.ToAddresses : ""); string emailCc = template.CcAddresses; string emailBcc = template.BccAddresses; string emailReplyTo = (template.ReplyToAddress.Length > 0 ? ";" + template.ReplyToAddress : ""); SmtpSettings smtpSettings = SiteUtils.GetSmtpSettings(); try { //Email.SendEmail( // smtpSettings, // fromAddress, // txtEmail.Text, // txtToEmail.Text, // string.Empty, // string.Empty, // "[" + siteSettings.SiteName + "]" + (this.txtSubject.Text.Trim() != "" ? (": " + this.txtSubject.Text.Trim()) : ""), // message.ToString(), // true, // "Normal"); EmailMessageTask messageTask = new EmailMessageTask(smtpSettings); messageTask.SiteGuid = siteSettings.SiteGuid; messageTask.EmailFrom = fromAddress; messageTask.EmailFromAlias = fromAlias; messageTask.EmailReplyTo = txtEmail.Text.Trim() + emailReplyTo; messageTask.EmailTo = txtToEmail.Text.Trim() + emailTo; messageTask.EmailCc = emailCc; messageTask.EmailBcc = emailBcc; messageTask.UseHtml = true; messageTask.Subject = subjectEmail; messageTask.HtmlBody = message.ToString(); messageTask.QueueTask(); WebTaskManager.StartOrResumeTasks(); } catch (Exception ex) { log.Error("Error sending email from address was " + fromAddress + " to address was " + txtToEmail.Text, ex); } this.lblMessage.Text = MessageTemplate.GetMessage("EmailSubjectThankYouMessage", NewsResources.EmailSubjectThankYouLabel); this.pnlSend.Visible = false; SetupScript(); } }