public ActionResult SendMessage(ContatoModel model) { if (String.IsNullOrWhiteSpace(model.Email)) { return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Error, Message = Resource.Msg_Geral_FormatoEmailInvalido }, JsonRequestBehavior.AllowGet); } String errorMessage; // Enviar email para o usuário em questão var result = Email.SendContact(model, out errorMessage); if (result) { return Json(new JsonRequestResult { ResultType = JsonRequestResultType.Success, Message = Resource.Msg_EmailEnviadoSucesso, ReturnUrl = Url.Content("~/Contact/") }, JsonRequestBehavior.AllowGet); } var jsResult = new JsonRequestResult { ResultType = JsonRequestResultType.Error, Message = Resource.Msg_Geral_Erro }; return Json(jsResult, JsonRequestBehavior.AllowGet); }
private static String MountBodyEmailReturnToUser(ContatoModel model) { var bodyHTML = WebHelpers.ScreenScrapeHtml(HttpContext.Current.Server.MapPath(Settings.UrlTemplateContact)); // Replace dos Textos Padrões bodyHTML = DefineResources(bodyHTML); bodyHTML = bodyHTML.Replace("[NOME]", model.Nome); bodyHTML = bodyHTML.Replace("[MENSAGEM]", Resource.Email_RetornoAoUsuario); bodyHTML = bodyHTML.Replace("[DATA]", DateTime.Now.ToString()); bodyHTML = bodyHTML.Replace("[EMAILUSUARIO]", model.Email); bodyHTML = bodyHTML.Replace("[TELEFONEUSUARIO]", model.Telefone); return bodyHTML; }
/// <summary> /// Sends the email to user. /// </summary> /// <param name="model">The model.</param> /// <param name="errorMessage">The error message.</param> /// <returns></returns> private static Boolean SendEmailToUser(ContatoModel model, out String errorMessage) { var ret = false; try { // Envia para o Usuário um Retorno - Apenas para avisar o Cliente var bodyHTML = MountBodyEmailReturnToUser(model); // Envia primeiro para o Administrador (email Configurado no Settings.Config) ret = WebHelpers.SendMailWithImages(String.Empty, Settings.TitleSite, model.Email, Resource.Email_ContatoRetornoAoUsuario, bodyHTML, CidLogo, Logo, null, // smtp.NetWork.Settings out errorMessage); if (!ret) { LogService.Log("Email.SendEmailToUser()", String.Format("{0} Email [{1}]", errorMessage, model.Email), Model.Enum.TipoLog.Erro); } else // Grava Log de Segurança { LogService.Log(String.Format("Email.SendEmailToUser({0})", model.Email), Resource.Msg_Log_EmailEnviado, Model.Enum.TipoLog.Seguranca); } } catch (Exception ex) { errorMessage = ex.Message; LogService.Log("Email.SendEmailToUser()", ex); throw ex; } return ret; }
/// <summary> /// Mounts the body email to admin. /// </summary> /// <param name="model">The model.</param> /// <returns></returns> private static String MountBodyEmailToAdmin(ContatoModel model) { var bodyHTML = WebHelpers.ScreenScrapeHtml(HttpContext.Current.Server.MapPath(Settings.UrlTemplateContactToAdmin)); // Replace dos Textos Padrões bodyHTML = DefineResources(bodyHTML); bodyHTML = bodyHTML.Replace("[NOME]", "Administrador"); bodyHTML = bodyHTML.Replace("[MENSAGEM]", model.Mensagem); bodyHTML = bodyHTML.Replace("[DATA]", DateTime.Now.ToString()); bodyHTML = bodyHTML.Replace("[NOMEUSUARIO]", model.Nome); bodyHTML = bodyHTML.Replace("[EMAILUSUARIO]", model.Email); bodyHTML = bodyHTML.Replace("[TELEFONEUSUARIO]", model.Telefone); bodyHTML = bodyHTML.Replace("[COMOFICOUSABENDO]", model.ComoFicouSabendo); return bodyHTML; }
/// <summary> /// Método que envia um email para o Email Configurado no Setting.Config /// <para> /// ------------- /// Também envia um retorno ao Usuário informando que sua mensagem foi recebida. /// ------------- /// </para> /// </summary> /// <param name="model">The model.</param> /// <param name="errorMessage">The error message.</param> /// <returns></returns> public static Boolean SendContact(ContatoModel model, out String errorMessage) { var ret = false; try { var contatoModel = model; if (SendEmailToAdmin(contatoModel, out errorMessage)) { SendEmailToUser(contatoModel, out errorMessage); ret = true; } } catch (Exception ex) { errorMessage = ex.Message; LogService.Log("Email.SendContact()", ex); throw ex; } return ret; }