public async Task <ActionResult> SendMail(EmailFormViewModel model) { if (this.ModelState.IsValid) { var body = "<p>Email From: {0} ({1})</p><p>Message:</p><p>{2}</p>"; using (var message = new MailMessage()) using (var smtp = new SmtpClient() { UseDefaultCredentials = true }) { message.To.Add(new MailAddress("*****@*****.**")); // replace with valid value message.From = new MailAddress(this.CurrentADUser.EmailAddress); // replace with valid value message.Subject = "Proposal to add right"; message.Body = string.Format(body, model.FromName, model.FromEmail, model.Message); message.IsBodyHtml = true; smtp.Host = "naftan.by"; smtp.Port = 25; smtp.EnableSsl = false; try { await smtp.SendMailAsync(message); } catch (Exception ex) { Debug.Write(ex.Message); } return(this.Json(model, JsonRequestBehavior.AllowGet)); } } return(this.Json(model, JsonRequestBehavior.AllowGet)); }
public async Task <IActionResult> AdHocEmailAction(EmailFormViewModel emailFormViewModel) { // Handle the action await _emailUtilityLogic.HandleAdHocEmail(emailFormViewModel); return(RedirectToAction("AdHocEmail", new { status = true })); }
public async Task <IActionResult> SendEmail(EmailFormViewModel form) { //This is configed to use gmail as domain so for gredentials //should be entered a mail.gmail account SmtpClient smtpClient = new SmtpClient("smtp.gmail.com"); smtpClient.Port = 587; smtpClient.UseDefaultCredentials = false; //For NetworkCredentials enter the account credentials /* * NetworkCredentials(string userName, string password) * userName = [email protected] * password = yourpassword */ smtpClient.Credentials = new System.Net.NetworkCredential("*****@*****.**", "yourpassword"); smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.EnableSsl = true; MailMessage mail = new MailMessage(); //Setting From , To and CC mail.From = new MailAddress(form.FromEmail, "News Web Site"); mail.To.Add(new MailAddress("The mail ON which you want to receive all messages")); mail.Subject = $"News Web Site Contact on: \"{form.Subject}\""; mail.Body = $"From: {form.Name};\n\rE-mail: {form.FromEmail}\n\rSubject: {form.Subject};\n\r \n\rMessage: {form.Message}"; mail.ReplyToList.Add(new MailAddress(form.FromEmail, form.Name)); await smtpClient.SendMailAsync(mail); return(RedirectToAction("Index", "Home")); }
/// <summary> /// Handles email form view model /// </summary> /// <param name="emailFormViewModel"></param> /// <returns></returns> public async Task <bool> HandleAdHocEmail(EmailFormViewModel emailFormViewModel) { var year = _globalConfigs.YearValue; var emailAddresses = new List <string>(); // Add admin email if (emailFormViewModel.Admin) { emailAddresses.AddRange(ApiConstants.AdminEmail); } // Add student emails if (emailFormViewModel.Students) { var students = await _studentLogic.GetAll(year); emailAddresses.AddRange(students.Select(x => x.Email).Where(x => !string.IsNullOrWhiteSpace(x))); } // Add driver emails if (emailFormViewModel.Drivers) { var drivers = await _driverLogic.GetAll(year); emailAddresses.AddRange(drivers.Select(x => x.Email).Where(x => !string.IsNullOrWhiteSpace(x))); } // Add host emails if (emailFormViewModel.Hosts) { var hosts = await _hostLogic.GetAll(year); emailAddresses.AddRange(hosts.Select(x => x.Email).Where(x => !string.IsNullOrWhiteSpace(x))); } // Add user emails if (emailFormViewModel.Users) { var users = await _userLogic.GetAll(); emailAddresses.AddRange(users.Select(x => x.Email).Where(x => !string.IsNullOrWhiteSpace(x))); } // Remove duplicates emailAddresses = emailAddresses.Distinct().ToList(); // Send the email await _emailServiceApiApi.SendEmailAsync(emailAddresses, emailFormViewModel.Subject, emailFormViewModel.Message); return(true); }
public async Task <IActionResult> SendEmail(EmailFormViewModel model) { if (!this.ModelState.IsValid) { return(this.NotFound()); } await this.emailSender.SendEmailAsync( model.From, model.From, model.To, model.Subject, model.Content); return(this.Redirect(model.ReturnUrl)); }
public ActionResult NotAuthorized() { //show or not windows auth pop up //Response.StatusCode = 401; //Response.ClearHeaders(); //Response.AddHeader("WWW-Authenticate", "Basic"); //Response.Headers.Remove("WWW-Authenticate"); //if (!Request.IsLocal && Request.IsAuthenticated) { // return View(model: CurrentADUser.Name); //} var sender = new EmailFormViewModel() { FromEmail = this.CurrentADUser.EmailAddress, FromName = this.CurrentADUser.FullName, }; return(this.View(model: sender)); }
public EmailFormViewModel Novo(EmailFormViewModel model) { if (string.IsNullOrEmpty(model.Sentido)) { model.Sentido = "s"; } if (model.Sentido == "s") { model.ConfiguracaoContasEmail = new SelectList(_configuracaoContaEmailServico.ObterPorUsuarioId(model.UsuarioId), "id", "email"); } else { model.ConfiguracaoContasEmail = new SelectList(_configuracaoContaEmailServico.ObterRegistroEmailEntrada(model.UsuarioId), "id", "email"); } if (model.FilaId.HasValue) { var configuracaoContaEmail = _configuracaoContaEmailServico.ObterPorFilaId((int)model.FilaId); if (configuracaoContaEmail != null) { model.ConfiguracaoContaEmailId = configuracaoContaEmail.Id; } } else { var configuracaoContaEmail = _configuracaoContaEmailServico.ObterContaPadrao(); if (configuracaoContaEmail != null) { model.ConfiguracaoContaEmailId = configuracaoContaEmail.Id; } } return(model); }
protected List <AtividadeParteEnvolvida> CarregarEnvolvidos(EmailFormViewModel model) { var envolvidos = new List <AtividadeParteEnvolvida>(); if (!string.IsNullOrEmpty(model.Remetente)) { if (model.Remetente.Contains(';')) { envolvidos.AddRange(from para in model.Remetente.Split(';') select para.Replace(" ", "") into email where !string.IsNullOrEmpty(email) select new AtividadeParteEnvolvida(email, null, TipoParteEnvolvida.Remetente.Value)); } else { envolvidos.Add(new AtividadeParteEnvolvida(model.Remetente.Replace(" ", ""), null, TipoParteEnvolvida.Remetente.Value)); } } if (!string.IsNullOrEmpty(model.Para)) { if (model.Para.Contains(';')) { envolvidos.AddRange(from para in model.Para.Split(';') select para.Replace(" ", "") into email where !string.IsNullOrEmpty(email) select new AtividadeParteEnvolvida(email, null, TipoParteEnvolvida.Destinatario.Value)); } else { envolvidos.Add(new AtividadeParteEnvolvida(model.Para.Replace(" ", ""), null, TipoParteEnvolvida.Destinatario.Value)); } } if (!string.IsNullOrEmpty(model.Copia)) { if (model.Copia.Contains(';')) { envolvidos.AddRange(from cc in model.Copia.Split(';') select cc.Replace(" ", "") into email where !string.IsNullOrEmpty(email) select new AtividadeParteEnvolvida(email, null, TipoParteEnvolvida.DestinatarioCopia.Value)); } else { envolvidos.Add(new AtividadeParteEnvolvida(model.Copia, null, TipoParteEnvolvida.DestinatarioCopia.Value)); } } if (string.IsNullOrEmpty(model.CopiaOculta)) { return(envolvidos); } if (model.CopiaOculta.Contains(';')) { envolvidos.AddRange(from cco in model.CopiaOculta.Split(';') select cco.Replace(" ", "") into email where !string.IsNullOrEmpty(email) select new AtividadeParteEnvolvida(email, null, TipoParteEnvolvida.DestinatarioOculto.Value)); } else { envolvidos.Add(new AtividadeParteEnvolvida(model.CopiaOculta, null, TipoParteEnvolvida.DestinatarioOculto.Value)); } return(envolvidos); }
protected void ValidarRegrasEmail(EmailFormViewModel model) { var bValidaPara = true; var bValidaCopia = true; var bValidaCopiaOculta = true; var bContemEmail = false; var bValidaDe = true; var sPara = string.IsNullOrEmpty(model.Para) ? "" : model.Para.Replace(",", ";"); var sCopia = string.IsNullOrEmpty(model.Copia) ? "" : model.Copia.Replace(",", ";"); var sCopiaOculta = string.IsNullOrEmpty(model.CopiaOculta) ? "" : model.CopiaOculta.Replace(",", ";"); var sCopiaDe = string.IsNullOrEmpty(model.Remetente) ? "" : model.Remetente.Replace(",", ";"); if (sPara.Trim() != "") { foreach (var item in sPara.Split(';')) { if (item.Trim() == "") { continue; } if (!EmailValido(item.Replace(" ", ""))) { bValidaPara = false; } else { bContemEmail = true; } } } if (!bValidaPara) { model.ValidationResult.Add(new ValidationError("E-mail no campo (para) inválido!")); } if (sCopia.Trim() != "") { foreach (var item in sCopia.Split(';')) { if (item.Trim() == "") { continue; } if (!EmailValido(item.Replace(" ", ""))) { bValidaCopia = false; } else { bContemEmail = true; } } } if (!bValidaCopia) { model.ValidationResult.Add(new ValidationError("E-mail no campo (cópia) inválido!")); } if (sCopiaOculta.Trim() != "") { foreach (var item in sCopiaOculta.Split(';')) { if (item.Trim() == "") { continue; } if (!EmailValido(item.Replace(" ", ""))) { bValidaCopiaOculta = false; } else { bContemEmail = true; } } } if (!bValidaCopiaOculta) { model.ValidationResult.Add(new ValidationError("E-mail no campo (cópia oculta) inválido.")); } if (!bContemEmail) { model.ValidationResult.Add( new ValidationError("É necessário informar ao menos um endereço de e-mail para envio.")); } if (sCopiaDe.Trim() != "") { foreach (var item in sCopiaDe.Split(';')) { if (item.Trim() == "") { continue; } if (!EmailValido(item.Replace(" ", ""))) { bValidaDe = false; } else { bContemEmail = true; } } } if (!bValidaDe) { model.ValidationResult.Add(new ValidationError("E-mail no campo (De) inválido.")); } if (string.IsNullOrEmpty(model.Assunto)) { model.ValidationResult.Add(new ValidationError("Favor informar o assunto.")); } }
protected void SalvarImagensTexto(EmailFormViewModel model, string diretorioArquivos) { try { var doc1 = new HtmlDocument(); doc1.LoadHtml(model.Html); foreach (var item in doc1.DocumentNode.SelectNodes("//img")) { var att = item.Attributes["src"]; if (att.Value.Trim().Contains("data:")) { try { var binarioImagem = att.Value.Substring((att.Value.IndexOf(",", StringComparison.Ordinal) + 1), ((att.Value.Length - att.Value.IndexOf(",", StringComparison.Ordinal)) - 1)); var dirArquivo = SalvarArrayByteParaImagem(binarioImagem, diretorioArquivos, model.EmailIdProvisorio); if (!string.IsNullOrEmpty(dirArquivo)) { var fi = new FileInfo(string.Format("{0}\\{1}", diretorioArquivos, dirArquivo)); var contentId = "@" + GetRandomString(10); var novoAnexo = new EmailAnexo(fi.Extension, fi.Name, dirArquivo, fi.Length, true, contentId); _anexos.Add(novoAnexo); item.SetAttributeValue("src", @"/Imagem/CorpoEmail/" + novoAnexo.IdProvisorio); StringWriter sw = new StringWriter(); doc1.Save(sw); AlternateView htmlView = AlternateView.CreateAlternateViewFromString(sw.ToString(), Encoding.GetEncoding("utf-8"), "text/html"); model.Html = sw.ToString(); } } catch (Exception) { // ignored } } else if (att.Value.Trim().Contains("Imagem/CorpoEmail")) { long idEmailAnexo; long.TryParse( att.Value.Substring((att.Value.IndexOf("/CorpoEmail/", StringComparison.Ordinal) + 12), ((att.Value.Length - att.Value.IndexOf("/CorpoEmail/", StringComparison.Ordinal)) - 12)), out idEmailAnexo); if (idEmailAnexo <= 0) { continue; } var emailAnexo = _emailAnexoServico.ObterPorId(idEmailAnexo); if (emailAnexo == null) { continue; } var novoAnexo = new EmailAnexo(emailAnexo.Extensao, emailAnexo.Nome, emailAnexo.Path, emailAnexo.Tamanho, emailAnexo.ImagemCorpo, emailAnexo.ContentId); _anexos.Add(novoAnexo); item.SetAttributeValue("src", @"/Imagem/CorpoEmail/" + novoAnexo.IdProvisorio); var sw = new StringWriter(); doc1.Save(sw); var htmlView = AlternateView.CreateAlternateViewFromString(sw.ToString(), Encoding.GetEncoding("utf-8"), "text/html"); model.Html = sw.ToString(); } } } catch (Exception) { // utils.log.gravaLog(Server.MapPath("~/"), ex, "Falha capturada no script (Convert numeroTelefone) " + HttpContext.Current.Request.Url.AbsolutePath); } }
public EmailFormViewModel TratarEmail(EmailFormViewModel model) { ValidarRegrasEmail(model); if (!model.ValidationResult.IsValid) { return(model); } var envolvidos = CarregarEnvolvidos(model); if (model.EmailPaiId.HasValue) { var emailPai = _emailServico.ObterEmailCompletoPor((long)model.EmailPaiId, null); if (emailPai != null) { model.PessoaJuridicaId = emailPai.Atividade.PessoasJuridicasId; model.PessoaFisicaId = emailPai.Atividade.PessoasFisicasId; model.AtividadePaiId = emailPai.AtividadeId; } } var configuracao = new Configuracao(); configuracao.SetarUrlEmailAnexos(); var diretorioArquivos = _configuracaoServico.ObterPorSigla(configuracao.Sigla).Valor; if (model.ConfiguracaoContaEmailId.HasValue) { var configuracaoContaEmail = _configuracaoContaEmailServico.ObterPorId((int)model.ConfiguracaoContaEmailId); model.Remetente = configuracaoContaEmail.Email; model.FilaId = configuracaoContaEmail.FilasId; } var htmlCompleto = @"<span style='color:white;mso-themecolor:background1'>IdEmailInicio[EmailId]|" + DateTime.Now + "IdEmailFim <o:p></o:p></span>"; model.Html = model.Html.Replace("style='pointer-events:none;'", "") + htmlCompleto; SalvarImagensTexto(model, diretorioArquivos); ProcessarAnexos(model.Anexos, diretorioArquivos); var email = _emailServico.Novo(model.UsuarioId, model.UsuarioId, null, model.OcorrenciaId, null, model.AtendimentoId, model.PessoaFisicaId, model.PessoaJuridicaId, null, model.AtividadePaiId, model.Assunto, null, model.Remetente, model.Html, model.Html, null, null, model.Sentido, model.Assunto, model.EmailPaiId, model.ConfiguracaoContaEmailId, model.FilaId, envolvidos, _anexos, model.StatusId, Guid.NewGuid().ToString()); if (email.ValidationResult.IsValid) { model.AtividadeId = email.AtividadeId; model.EmailId = email.Id; } else { model.ValidationResult = email.ValidationResult; } return(model); }
public EmailFormViewModel AdicionarNew(EmailFormViewModel model) { return(TratarEmailNew(model)); }