private static void RunTaskOnNewThread(object oTask) { if (oTask == null) { return; } LetterSendTask task = (LetterSendTask)oTask; log.Info("deserialized LetterSendTask task"); // give a little time to make sure the taskqueue was updated after spawning the thread Thread.Sleep(10000); // 10 seconds task.RunTask(); log.Info("started LetterSendTask task"); }
void btnSendToList_Click(object sender, EventArgs e) { SaveLetter(); if (!LetterIsValidForSending()) return; if (letter.SendCompleteUtc > DateTime.MinValue) return; // TODO: implement approval process letter.ApprovedBy = currentUser.UserGuid; letter.IsApproved = true; string baseUrl = WebUtils.GetHostRoot(); if (WebConfigSettings.UseFoldersInsteadOfHostnamesForMultipleSites) { // in folder based sites the relative urls in the editor will already have the folder name // so we want to use just the raw site root not the navigation root baseUrl = WebUtils.GetSiteRoot(); } string content = SiteUtils.ChangeRelativeUrlsToFullyQualifiedUrls(baseUrl, WebUtils.GetSiteRoot(), letter.HtmlBody); letter.HtmlBody = content; SaveLetter(); letter.TrackSendClicked(); LetterSendTask letterSender = new LetterSendTask(); letterSender.SiteGuid = siteSettings.SiteGuid; letterSender.QueuedBy = currentUser.UserGuid; letterSender.LetterGuid = letter.LetterGuid; letterSender.UnsubscribeLinkText = Resource.NewsletterUnsubscribeLink; letterSender.ViewAsWebPageText = Resource.NewsletterViewAsWebPageLink; letterSender.UnsubscribeUrl = SiteRoot + "/eletter/Unsubscribe.aspx"; if (letterInfo.AllowArchiveView) { letterSender.WebPageUrl = SiteRoot + "/eletter/LetterView.aspx?l=" + letter.LetterInfoGuid.ToString() + "&letter=" + letter.LetterGuid.ToString(); } letterSender.NotificationFromEmail = siteSettings.DefaultEmailFromAddress; letterSender.NotifyOnCompletion = true; letterSender.NotificationToEmail = currentUser.Email; SmtpSettings smtpSettings = GetSmtpSettings(); letterSender.User = smtpSettings.User; letterSender.Password = smtpSettings.Password; letterSender.Server = smtpSettings.Server; letterSender.Port = smtpSettings.Port; letterSender.RequiresAuthentication = smtpSettings.RequiresAuthentication; letterSender.UseSsl = smtpSettings.UseSsl; letterSender.PreferredEncoding = smtpSettings.PreferredEncoding; letterSender.TaskUpdateFrequency = 65; letterSender.MaxToSendPerMinute = WebConfigSettings.NewsletterMaxToSendPerMinute; letterSender.QueueTask(); string redirectUrl = SiteRoot + "/eletter/SendProgress.aspx?l=" + letterInfoGuid.ToString() + "&letter=" + letterGuid.ToString() + "&t=" + letterSender.TaskGuid.ToString(); WebTaskManager.StartOrResumeTasks(); WebUtils.SetupRedirect(this, redirectUrl); }