Exemplo n.º 1
0
        public ActionResult TestEmail(MassEmailer m)
        {
            m.Body = GetBody(m.Body);
            if (UsesGrammarly(m))
            {
                return Json(new { error = GrammarlyNotAllowed });
            }

            if (TooLarge(m))
            {
                return Json(new { error = TooLargeError });
            }

            if (Util.SessionTimedOut())
            {
                Session["massemailer"] = m;
                return Content("timeout");
            }

            if (m.EmailFroms().Count(ef => ef.Value == m.FromAddress) == 0)
            {
                return Json(new { error = "No email address to send from." });
            }

            m.FromName = m.EmailFroms().First(ef => ef.Value == m.FromAddress).Text;
            var from = Util.FirstAddress(m.FromAddress, m.FromName);
            var p = CurrentDatabase.LoadPersonById(Util.UserPeopleId ?? 0);

            try
            {
                ValidateEmailReplacementCodes(CurrentDatabase, m.Body, from);

                CurrentDatabase.CopySession();
                CurrentDatabase.Email(from, p, null, m.Subject, m.Body, false);
            }
            catch (Exception ex)
            {
                return Json(new { error = ex.Message });
            }
            return Content("Test email sent.");
        }