Exemplo n.º 1
0
        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();
            SmtpSettings smtpSettings = GetSmtpSettings();

            LetterSendTask letterSender = new LetterSendTask
            {
                SiteGuid              = siteSettings.SiteGuid,
                QueuedBy              = currentUser.UserGuid,
                LetterGuid            = letter.LetterGuid,
                UnsubscribeLinkText   = Resource.NewsletterUnsubscribeLink,
                ViewAsWebPageText     = Resource.NewsletterViewAsWebPageLink,
                UnsubscribeUrl        = SiteRoot + "/eletter/Unsubscribe.aspx",
                NotificationFromEmail = siteSettings.DefaultEmailFromAddress,
                NotifyOnCompletion    = true,
                NotificationToEmail   = currentUser.Email,
                User     = smtpSettings.User,
                Password = smtpSettings.Password,
                Server   = smtpSettings.Server,
                Port     = smtpSettings.Port,
                RequiresAuthentication = smtpSettings.RequiresAuthentication,
                UseSsl              = smtpSettings.UseSsl,
                PreferredEncoding   = smtpSettings.PreferredEncoding,
                TaskUpdateFrequency = 65,
                MaxToSendPerMinute  = WebConfigSettings.NewsletterMaxToSendPerMinute
            };

            if (letterInfo.AllowArchiveView)
            {
                letterSender.WebPageUrl = SiteRoot + "/eletter/LetterView.aspx?l=" + letter.LetterInfoGuid.ToString() + "&letter=" + letter.LetterGuid.ToString();
            }

            letterSender.QueueTask();

            string redirectUrl = SiteRoot + "/eletter/SendProgress.aspx?l=" + letterInfoGuid.ToString()
                                 + "&letter=" + letterGuid.ToString()
                                 + "&t=" + letterSender.TaskGuid.ToString();

            WebTaskManager.StartOrResumeTasks();

            WebUtils.SetupRedirect(this, redirectUrl);
        }
Exemplo n.º 2
0
        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.ChangeRelativeUrlsToFullyQuailifiedUrls(baseUrl, ImageSiteRoot, 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.UnsubscribeUrl        = SiteRoot + "/eletter/Unsubscribe.aspx";
            letterSender.NotificationFromEmail = siteSettings.DefaultEmailFromAddress;
            letterSender.NotifyOnCompletion    = true;
            letterSender.NotificationToEmail   = currentUser.Email;

            SmtpSettings smtpSettings = SiteUtils.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;

            //localizing the task name can cause deserialization errors
            //letterSender.TaskName = string.Format(CultureInfo.InvariantCulture,
            //        Resource.NewsletterTaskNameFormatString, letterInfo.Title);

            //letterSender.NotificationSubject = string.Format(CultureInfo.InvariantCulture,
            //    Resource.TaskQueueCompletedTaskNotificationFormatString, letterSender.TaskName);

            //letterSender.StatusCompleteMessage = Resource.NewsletterStatusCompleteMessage;
            //letterSender.StatusQueuedMessage = Resource.NewsletterStatusQueuedMessage;
            //letterSender.StatusStartedMessage = Resource.NewsletterStatusStartedMessage;
            //letterSender.StatusRunningMessage = Resource.NewsletterStatusRunningMessageFormatString;
            //letterSender.TaskCompleteMessage = string.Format(CultureInfo.InvariantCulture,
            //    Resource.TaskQueueCompletedTaskNotificationFormatString, letterSender.TaskName);

            letterSender.QueueTask();

            string redirectUrl = SiteRoot + "/eletter/SendProgress.aspx?l=" + letterInfoGuid.ToString()
                                 + "&letter=" + letterGuid.ToString()
                                 + "&t=" + letterSender.TaskGuid.ToString();

            WebTaskManager.StartOrResumeTasks();

            WebUtils.SetupRedirect(this, redirectUrl);
        }