Exemple #1
0
        /// <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);
        }