public bool SendMail(Email email) { bool response = false; var config = new ConfigService(); try { var message = new MailMessage(); message.From = string.IsNullOrEmpty(email.From) ? new MailAddress(config.FromAddress) : new MailAddress(email.From); foreach (var to in email.To) { message.To.Add(to); } foreach (var cc in email.Cc) { message.CC.Add(cc); } message.Subject = email.Subject; message.Body = email.Body; var client = new SmtpClient(config.Server, config.Port); client.EnableSsl = config.SSL; var credential = new NetworkCredential(config.ServerUser, config.ServerPassword); client.Credentials = credential; response = true; client.Send(message); } catch (SmtpException ex) { throw new Exception(ex.InnerException.Message); } return response; }
public JsonResult RecuperaContraseña(RetrivePasswordModel retrievePassword) { var response = 1; if (ModelState.IsValid) { var successfullSending = 2; var errorSending = 4; if (Security.ExistUser(retrievePassword.Username)) { var usuario = Security.GetUserByUserName(retrievePassword.Username); if (usuario.Activo) { if (retrievePassword.Email.ToUpper() == usuario.Email.ToUpper()) { var mail = new ServiceMailer(); var message = new Email(); message.To.Add(usuario.Email); message.Subject = "Recuperación de Contraseña."; message.Body = "Su contraseña de acceso es: " + Security.Decript(usuario.Password); response = mail.SendMail(message) ? successfullSending : errorSending; } else { response = 5; } } else { response = 3; } } } return Json(response); }
public bool SendNotifications(Incidente incidente) { var sb = new StringBuilder(); var res = false; var userId = 1;//(int) Session["userNameId"]; var empresasId = (from empresa in db.relUsuarioEmpresa where empresa.UsuarioId == userId select empresa); var emails = (from email in db.AlertasIncidente //join e in db.relUsuarioEmpresa on email.EmpresaId equals e.EmpresaId where email.TipoIncidenteId.Equals(incidente.TipoIncidenteId) //&& e.UsuarioId == userId select email); var mensaje = string.Empty; var TipoIncidente = db.TiposIncidente.FirstOrDefault(e => e.Id == incidente.TipoIncidenteId); foreach (var alerta in emails) { var nomEmpresa = (db.Empresas.FirstOrDefault(e => e.Id == incidente.EmpresaId)); var Estado = (db.Estados.FirstOrDefault(e => e.Id == incidente.EstadoId)); var ciudad = (db.Ciudades.FirstOrDefault(c => c.Id == incidente.CiudadId)); var zona = (db.Zonas.FirstOrDefault(z => z.Id == incidente.ZonaId)); var mail = new ServiceMailer(); var message = new Email(); var email = alerta.Emails.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList(); email.ForEach(e=> message.To.Add(e)); message.Subject = "Alerta de incidente."; mensaje += "Fecha y hora del incidente: " + incidente.FechaIncidente + "\r\n"; mensaje += "Tipo de Incidente: " + TipoIncidente.Nombre + "\r\n"; mensaje += "Empresa: " + nomEmpresa.Nombre + "\r\n"; mensaje += string.Format("Ubicación: Estado: {0}, Ciudad: {1}, Colonia: {2}, Calle: {3}, Entre calles: {4}", Estado.Nombre, ciudad.Nombre, incidente.Colonia, incidente.Calle, incidente.EntreCalles) + "\r\n"; mensaje += string.Format("Zona: {0}", incidente.ZonaId != null ? zona.Nombre : "No definida"); message.Body = mensaje; foreach (var empresa in empresasId) { if (alerta.RecibirMiEmpresa && empresa.EmpresaId == alerta.EmpresaId) { res = mail.SendMail(message); } if (alerta.RecibirOtrasEmpresas && alerta.EmpresaId != empresa.EmpresaId) { res = mail.SendMail(message); } } } return res; }