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."); }