示例#1
0
        public void TestUnsubscribe()
        {
            const string email = "*****@*****.**";
            var          token = SubscriberService.CalculateToken(email);

            Assert.IsTrue(SubscriberService.VerifyToken(email, token));
        }
示例#2
0
        public ActionResult Send(string text, string subject)
        {
            var messages = new List <MailMessage>();

            DetachedCriteria subscriberCriteria = DetachedCriteria.For <Subscriber>();

            subscriberCriteria.Add(Restrictions.Eq("IsActive", true));
            var subscribers = daoTemplate.FindByCriteria <Subscriber>(subscriberCriteria);

            foreach (Subscriber subscriber in subscribers)
            {
                MailMessage message = new MailMessage(new MailAddress(Settings.Instance.MailFromAddress, Settings.Instance.MailFromDisplayName), new MailAddress(subscriber.Email));
                message.Subject      = subject;
                message.Body         = text;
                message.IsBodyHtml   = true;
                message.BodyEncoding = Encoding.UTF8;
                message.Body        += "<br/>" + string.Format("Чтобы отписаться от рассылки  перейдите по ссылке: http://{2}/Unsubscribe/{0}/{1}", subscriber.Email, SubscriberService.CalculateToken(subscriber.Email), Request.ServerVariables["HTTP_HOST"]);
                messages.Add(message);
            }

            DetachedCriteria userCriteria = DetachedCriteria.For <User>();

            userCriteria.Add(Restrictions.Eq(Models.User.IsSignedForNewsProperty, true));
            var users = daoTemplate.FindByCriteria <User>(userCriteria);

            foreach (User user in users)
            {
                MailMessage message = new MailMessage(new MailAddress(Settings.Instance.MailFromAddress, Settings.Instance.MailFromDisplayName), new MailAddress(user.Email, user.Contact.FullName));
                message.Subject      = subject;
                message.Body         = text;
                message.IsBodyHtml   = true;
                message.BodyEncoding = Encoding.UTF8;
                message.Body        += "<br/>" + string.Format("Чтобы отписаться от рассылки  перейдите по ссылке: http://{2}/UnsubscribeUser/{0}/{1}", user.Email, SubscriberService.CalculateToken(user.Email), Request.ServerVariables["HTTP_HOST"]);
                messages.Add(message);
            }

            SmtpClient client = new SmtpClient(Settings.Instance.MailSmtpServer, Settings.Instance.MailSmtpPort)
            {
                Credentials = new NetworkCredential()
                {
                    UserName = Settings.Instance.MailUserName, Password = Settings.Instance.MailUserPassword
                }
            };

            foreach (MailMessage message in messages)
            {
                client.Send(message);
            }


            return(View());
        }