public void ReenviarCorreo() { string order = "ord_2oWfa4A6DPweWLKre"; BusCorreo busCorreo = new BusCorreo(); var res = busCorreo.BReenviarCorreo(order); }
public IMDResponse<bool> CReenviarCorreo([FromUri]string psOrderId) { IMDResponse<bool> response = new IMDResponse<bool>(); string metodo = nameof(this.CReenviarCorreo); logger.Info(IMDSerialize.Serialize(67823458630291, $"Inicia {metodo}([FromUri]string psOrderId)", psOrderId)); try { BusCorreo busCorreo = new BusCorreo(); response = busCorreo.BReenviarCorreo(psOrderId); } catch (Exception ex) { response.Code = 67823458631068; response.Message = "Ocurrió un error inesperado en el servicio al reenviar el correo."; logger.Error(IMDSerialize.Serialize(67823458631068, $"Error en {metodo}([FromUri]string psOrderId): {ex.Message}", psOrderId, ex, response)); } return response; }
/// <summary> /// Envía las credenciales al correo del usuario /// </summary> /// <param name="psCorreo"></param> /// <param name="enumEmail"></param> /// <param name="users"></param> /// <returns></returns> public IMDResponse <bool> BEnviarCredenciales(string psCorreo, EnumEmailActionPass enumEmail, List <string> users = null) { IMDResponse <bool> response = new IMDResponse <bool>(); string metodo = nameof(this.BEnviarCredenciales); logger.Info(IMDSerialize.Serialize(67823458631845, $"Inicia {metodo}(string psCorreo)", psCorreo)); try { if (string.IsNullOrWhiteSpace(psCorreo)) { response.Code = -23746876326; response.Message = "El correo electrónico es requerido."; return(response); } //Obtener datos del usuario IMDResponse <List <EntUsuario> > resGetUser = this.BObtenerUsuario(psCorreo: psCorreo); if (resGetUser.Code != 0) { return(resGetUser.GetResponse <bool>()); } if (resGetUser.Result.Count < 1) { response.Code = -8767263467; response.Message = "El correo electrónico no se encuentra registrado en el sistema"; return(response); } string cuenta = string.Empty; List <EntUsuario> currentUsers = resGetUser.Result; if (users != null) { currentUsers = currentUsers.Where(x => users.Contains(x.sUsuario)).ToList(); } //Armar la lista de usuarios enlazados al correo electrónico foreach (EntUsuario user in currentUsers) { if (user.bAcceso == null || user.bAcceso == false || !user.bActivo || user.bBaja) { continue; } string pass = this.BDeCodePassWord(user.sPassword); cuenta += $"<tr class=\"font-table bold small center table-border-b\"><td>{user.sTipoCuenta}</td><td>{user.sUsuario}</td><td>{pass}</td></tr>"; } if (string.IsNullOrWhiteSpace(cuenta)) { response.Code = -834787687623; response.Message = "No se encontraron cuentas activas para el usuario."; return(response); } EntUsuario entUsuario = resGetUser.Result.First(); //Armar asunto y cupero del correo string asunto = string.Empty; string titulo = string.Empty; string header = string.Empty; string footer = string.Empty; switch (enumEmail) { case EnumEmailActionPass.Crear: asunto = "Meditoc - Credenciales de acceso"; titulo = "Bienvenido a Meditoc Call Center"; header = "Se han creado las credenciales de acceso al portal de MeditocCallCenter:"; footer = "Le sugerimos cambiar la contraseña en su próximo ingreso al portal de MeditocCallCenter."; break; case EnumEmailActionPass.Modificar: asunto = "Meditoc - Cambio en las credenciales"; titulo = "Modificación en las credenciales de acceso"; header = "Se han modificado las credenciales de acceso al portal de MeditocCallCenter:"; footer = "Si no realizó esta acción, cambie sus credenciales en su próximo ingreso o contacte a su administrador."; break; case EnumEmailActionPass.Recuperar: asunto = "Meditoc - Recuperación de cuenta"; titulo = "Recuperación de la cuenta"; header = "Se ha solicitado la recuperación de las credenciales de acceso al portal de MeditocCallCenter:"; footer = "Le sugerimos cambiar la contraseña en su próximo ingreso al portal de MeditocCallCenter."; break; default: break; } //Preparar correo string plantillaBody = "<!DOCTYPE html><html><head><meta charset=\"utf-8;\" /><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /><link href=\"https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap\" rel=\"stylesheet\" /><style>body {font-family: Roboto, \"Segoe UI\", Tahoma, Geneva, Verdana, sans-serif;margin: 0;}.center {text-align: center !important;}.light {font-weight: 300;}.normal {font-weight: normal;}.bold {font-weight: 500;}.small {font-size: 12px;}.large {font-size: 15px;}.font-default {color: #707070;}.font-secondary {color: #115c8a;}.font-unset {color: #ffffff;}.font-table {color: #878787;}.table {margin: auto;width: 100%;max-width: 800px;border: 1px solid #dddddd;border-spacing: 0px;border-collapse: 0px;}.table td {padding: 6px 0px;}.logo-head {background-color: #11b6ca;padding: 5px 0px;}.table-content {margin: auto;width: 90%;border-collapse: collapse;}.table-detail {margin: auto;width: 100%;border-collapse: collapse;}.table-detail td {padding: 8px;}.head-detail {background-color: #115c8a;}.divider {height: 1px;border: 0;background-color: #989898;}.link {text-decoration: none;}.link:hover {text-decoration: underline;}.link-none {text-decoration: none;}.table-border-b td {border-bottom: 1px solid #ccc;}</style></head><body><table class=\"table\"><tr><td class=\"logo-head center\"><img alt=\"logo-meditoc\" src=\"sLogoMeditoc\" height=\"50px\" /></td></tr><tr><td><table class=\"table-content\"><tr><td class=\"center\"><span class=\"font-default bold large\">data.titulo</span></td></tr><tr class=\"center\"><td><span class=\"font-default normal large\">data.header</span></td></tr><tr><td><table class=\"table-detail\"><tr class=\"head-detail font-unset bold small center\"><td colspan=\"3\">ACCESO</td></tr><tr><td><table class=\"table-detail\"><thead><tr class=\"font-table bold small font-secondary\"><th>Tipo de cuenta</th><th>Usuario</th><th>Contraseña</th></tr></thead><tbody>data.cuenta</tbody></table></td></tr></table></td></tr><tr class=\"center\"><td><p><span class=\"font-default normal large\">data.footer</span></p></td></tr><tr><td><hr class=\"divider\" /></td></tr><tr><td><span class=\"font-default light small\">De conformidad con la ley federal de protección de datos personales en posesión delos particulares, ponemos a su disposición nuestro <a href=\"sAvisoPrivacidad\" class=\"link font-secondary normal\"> Aviso de Privacidad </a> y <a href=\"sTerminosCondiciones\" class=\"link font-secondary normal\"> Términos y Condiciones. </a></span></td></tr></table></td></tr></table></body></html>"; plantillaBody = plantillaBody.Replace("data.cuenta", cuenta); plantillaBody = plantillaBody.Replace("data.titulo", titulo); plantillaBody = plantillaBody.Replace("data.header", header); plantillaBody = plantillaBody.Replace("data.footer", footer); plantillaBody = plantillaBody.Replace("sLogoMeditoc", ConfigurationManager.AppSettings["sLogoMeditoc"]); plantillaBody = plantillaBody.Replace("sAvisoPrivacidad", ConfigurationManager.AppSettings["sAvisoDePrivacidad"]); plantillaBody = plantillaBody.Replace("sTerminosCondiciones", ConfigurationManager.AppSettings["sTerminosYCondiciones"]); //Enviar correo BusCorreo busCorreo = new BusCorreo(); busCorreo.BEnviarEmail("", "", "", asunto, plantillaBody, entUsuario.sCorreo, "", ""); response.Code = 0; response.Result = true; response.Message = "Las credenciales se han enviado al correo proporcionado."; } catch (Exception ex) { response.Code = 67823458632622; response.Message = "Ocurrió un error inesperado al recuperar la contraseña. Intenta más tarde."; logger.Error(IMDSerialize.Serialize(67823458632622, $"Error en {metodo}(string psCorreo): {ex.Message}", psCorreo, ex, response)); } return(response); }