public ActionResult ConfirmSendTestEmail(EmailTemplateSendTestModel model) { if (ModelState.IsValid) { return(Json(_emailTemplateService.SendTestEmailTemplate(model))); } return(Json(new ResponseModel { Success = false, Message = ModelState.BuildValidationMessages() })); }
/// <summary> /// Send test email template /// </summary> /// <param name="emailTemplateSendTestModel"></param> /// <returns></returns> public ResponseModel SendTestEmailTemplate(EmailTemplateSendTestModel emailTemplateSendTestModel) { var emailTemplate = GetById(emailTemplateSendTestModel.Id); if (emailTemplate == null) { return(new ResponseModel { Success = false, Message = T("EmailTemplate_Message_ObjectNotFound") }); } var type = Type.GetType(emailTemplate.DataType); if (type != null && type.GetMethod("GetMockData") != null) { try { var emailAccountService = HostContainer.GetInstance <IEmailAccountService>(); var defaultAccount = emailAccountService.GetDefaultAccount(); if (defaultAccount == null) { defaultAccount = emailAccountService.GetAll().FirstOrDefault(); if (defaultAccount == null) { return(new ResponseModel { Success = false, Message = T("EmailTemplate_Message_MissingDefaultAccount") }); } } dynamic templateModel = Activator.CreateInstance(type); var mockData = templateModel.GetMockData(); var emailResponse = ParseEmail(emailTemplate, mockData); var emailModel = new EmailModel { To = emailTemplateSendTestModel.To, From = !string.IsNullOrEmpty(emailTemplate.From) ? emailTemplate.From : defaultAccount.Email, FromName = "Email Test Service", Bcc = emailTemplateSendTestModel.BCC, CC = emailTemplateSendTestModel.CC, Subject = emailTemplateSendTestModel.Subject, Body = emailResponse.Body, Attachment = string.Empty }; return(emailAccountService.SendEmailDirectly(defaultAccount, emailModel)); } catch (Exception exception) { return(new ResponseModel { Success = false, Message = T("EmailTemplate_Message_SendTestEmailFailure"), DetailMessage = exception.Message }); } } return(new ResponseModel { Success = false, Message = T("EmailTemplate_Message_SendTestEmailFailure") }); }