public JsonResult Reply(EmailIM vm)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }

            var smtp = _emailAccountServices.GetElements().Where(m => m.IsDefault).FirstOrDefault();

            if (smtp == null)
            {
                AR.SetWarning(Messages.SetDefaultEmailAccount);
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }
            try
            {
                _emailingService.SendMail(SettingsManager.Site.SiteName, SettingsManager.Site.MailTo, vm.MailTo, string.Empty, vm.Subject, vm.Body,
                                          smtp.Smtpserver, smtp.Email, SettingsManager.Site.SiteName, smtp.UserName, EncryptionHelper.Decrypt(smtp.Password), smtp.Port, smtp.EnableSsl);

                AR.SetSuccess(String.Format(Messages.AlertSendSuccess, EntityNames.Email));
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }
            catch (Exception er)
            {
                AR.Setfailure(er.Message);
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }

            //var result =  _emailService.SendMail(SettingsManager.Site.SiteName, vm.MailTo, vm.Subject, vm.Body);
        }
        public ActionResult Reply(int id)
        {
            Email email = _emailServices.GetById(id);

            if (email == null)
            {
                AR.Setfailure(Messages.HttpNotFound);
                return(Json(AR, JsonRequestBehavior.AllowGet));
            }

            EmailIM vm = new EmailIM()
            {
                Subject = $"回复:{email.Subject}",
                MailTo  = email.MailTo,
                Body    = $"<p></p><blockquote>{email.Body}</blockquote>"
            };

            return(View(vm));
        }
        public async Task <JsonResult> SendEmail(EmailIM vm)
        {
            if (!ModelState.IsValid)
            {
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }

            if (Session["SigCaptcha"] != null && Session["SigCaptcha"].ToString().ToLower() != vm.CaptchaText.ToLower())
            {
                ModelState.AddModelError(string.Empty, "验证码不正确!");
                AR.Setfailure(GetModelErrorMessage());
                return(Json(AR, JsonRequestBehavior.DenyGet));
                // return View(model);
            }

            var template = await _db.EmailTemplateSets.FirstOrDefaultAsync(d => d.TemplateNo == "T003");

            // _templateService.GetEmailTemplateByTemplateNo("T003");
            if (template == null)
            {
                AR.Setfailure(string.Format(Messages.NoEmailTemplate, "T003"));
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }


            vm.Subject = SettingsManager.Site.SiteName + "联系邮件";
            var emailBody = ReplaceTemplate(template.Body);

            emailBody = emailBody.Replace("{Name}", vm.Name);
            emailBody = emailBody.Replace("{Phone}", vm.Phone);
            emailBody = emailBody.Replace("{Email}", vm.Email);
            emailBody = emailBody.Replace("{Message}", vm.Body);

            var emailAccount = await _db.EmailAccountSets.FindAsync(template.EmailAccountId);

            //_accountService.GetById(template.EmailAccountId);

            try
            {
                EmailSet email = new EmailSet
                {
                    Body        = emailBody,
                    Subject     = vm.Subject,
                    MailTo      = vm.Email,
                    MailCc      = string.Empty,
                    Active      = true,
                    CreatedBy   = vm.Name,
                    CreatedDate = DateTime.Now
                };

                _db.EmailSets.Add(email);
                await _db.SaveChangesAsync();

                // _emailListService.Create(email);

                _emailService.SendMail(vm.Name, vm.Email, SettingsManager.Site.MailTo, string.Empty,
                                       vm.Subject, emailBody, emailAccount.Smtpserver, emailAccount.Email, SettingsManager.Site.SiteName,
                                       emailAccount.UserName, EncryptionHelper.Decrypt(emailAccount.Password), (int)emailAccount.Port, emailAccount.EnableSsl);


                AR.SetSuccess(Messages.EmailSentSuccess);
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }
            catch (Exception er)
            {
                AR.Setfailure(er.Message);
                return(Json(AR, JsonRequestBehavior.DenyGet));
            }
        }