/// <summary> /// Realiza el envío del correo electrónico con los conprobantes solicitados /// </summary> /// <param name="xml">True para enviar archivo xml</param> /// <param name="pdf">True para enviar archivo pdf</param> /// <returns></returns> public RetornoOperacion EnviaEmail(bool xml, bool pdf) { //eclarando objeto de resultado RetornoOperacion resultado = new RetornoOperacion(1); //Creando validador de direcciones de correo electrónico System.Text.RegularExpressions.Regex regexv = new System.Text.RegularExpressions.Regex(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"); //Obteniendo direcciones de correo string[] destinatarios = txtDestinatariosEmail.Text.Replace("\n", "").Replace("\r", "").Split(";,".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); //Validando existencia de direcciones if (destinatarios.Length > 0) { //Validando el conjunto de direcciones if (destinatarios.Length != (from string email in destinatarios where regexv.IsMatch(email) select email).Count()) { resultado = new RetornoOperacion("Una o más direcciones de correo electrónico no poseen formato válido."); } } else { resultado = new RetornoOperacion("No se han agregado direcciones de correo electrónico."); } //Si no hay errores hasta este punto if (resultado.OperacionExitosa) { //Recuperando lista de comprobantes List <int> comprobantes = (List <int>)ViewState["_comprobantes"]; //Determinando el número de comprobantes a enviar //Si hay uno if (comprobantes.Count == 1) { //Instanciando comprobante using (Comprobante c = new Comprobante(comprobantes.First())) { //Enviando e mail resultado = c.EnviaArchivosEmailV3_3(ViewState["_remitente"].ToString(), txtAsunto.Text, txtMensaje.Text, destinatarios, pdf, xml); } } //Si hay más de uno else if (comprobantes.Count > 1) { //TODO: IMPLEMENTAR LÓGICA DE ENVÍO MULTIPLE DE COMPROBANTES AL MISMO CONJUNTO DE DESTINATARIOS } else { resultado = new RetornoOperacion("No hay comprobantes por envíar."); } } //Devolviendo resultado return(resultado); }