public override int Executar()
        {
            if (XMLComandoSQL.Debugar)
                return 0;

            Configurar();
            CtrlEMail ctrlEmail = new CtrlEMail();
            EmailDB email = ctrlEmail.BuscaID(XMLComandoSQL.IDEmail);
            if (email != null)
            {
                MatchCollection tags = Regex.Matches(email.CorpoMensagem, "<%(.*?)%>");
                Dictionary<string, int> campos = new Dictionary<string, int>();

                using (IDataReader leitor = BaseOrigem.ExecutaLeitura(ComandoSQL.RemoverComentarios()))
                {
                    if (leitor != null)
                    {
                        List<MailMessage> emails = new List<MailMessage>();

                        foreach (Match item in tags)
                        {
                            string tag = item.Value.Replace("<%", "").Replace("%>", "");
                            if (!campos.ContainsKey(tag))
                                campos.Add(tag, IndexCampo(tag, leitor));
                        }

                        if (campos.ContainsValue(-1))
                        {
                            throw new Exception("O Comando SQL de origem não possui todas as 'TAGS' necessárias para formular o E-Mail.");
                        }
                        else
                        {
                            bool enviar = false;
                            while (leitor.Read())
                            {
                                enviar = true;
                                string para = Convert.ToString(leitor["Para"]);
                                string corpo = email.CorpoMensagem;
                                foreach (KeyValuePair<string, int> item in campos)
                                    corpo = corpo.Replace("<%" + item.Key + "%>", Convert.ToString(leitor.GetValue(item.Value)));

                                MailMessage mail = new MailMessage();
                                mail.IsBodyHtml = true;
                                mail.From = new MailAddress("*****@*****.**");
                                mail.Subject = email.Assunto;
                                mail.Body = corpo;
                                mail.To.Add(para);

                                emails.Add(mail);
                            }

                            SmtpClient client = new SmtpClient();
                            client.Port = 587;
                            client.Host = "smtp.fei.edu.br";
                            client.EnableSsl = false;
                            client.UseDefaultCredentials = false;
                            client.DeliveryMethod = SmtpDeliveryMethod.Network;

                            var mails = emails.Select(mail => mail.To.ToString().Distinct());

                            if (enviar)
                                foreach (MailMessage item in emails)
                                    client.Send(item);
                        }
                    }
                }
            }
            return 0;
        }
        public override int Executar()
        {
            if (XMLComandoSQL.Debugar)
                return 0;

            Configurar();
            CtrlEMail ctrlEmail = new CtrlEMail();
            EmailDB email = ctrlEmail.BuscaID(XMLComandoSQL.IDEmail);
            if (email != null)
            {
                using (IDataReader leitor = BaseOrigem.ExecutaLeitura(ComandoSQL.RemoverComentarios()))
                {
                    MatchCollection tags = Regex.Matches(email.CorpoMensagem, "<%(.*?)%>");
                    if (leitor != null && tags[0].Value.ToLower() == "<%tabela%>")
                    {
                        string linha = "";
                        string linhas = "";
                        string cabecalho = "";
                        for (int i = 0; i < leitor.FieldCount; i++)
                            cabecalho += ""
                                + "<th class='coluna cabecalho'><span style='font-family: Calibri, Verdana, Arial; color: #555; font-size: 1.1em;'>"
                                + leitor.GetName(i)
                                + "</span></th>";
                        linhas = string.Format("<thead><tr>{0}</tr></thead><tbody>", cabecalho);

                        int par = 0;
                        bool enviar = false;
                        while (leitor.Read())
                        {
                            linha = "";
                            enviar = true;
                            for (int i = 0; i < leitor.FieldCount; i++)
                                linha += string.Format(""
                                    + "<td class='coluna " + leitor.GetName(i) + "' style='border-top:solid #7F7F7F 1.0pt;border-left:none;border-right:none;padding:0cm 5.4pt 0cm 5.4pt;'>"
                                    + "<span style='font-family: Calibri, Verdana, Arial; color: #555; font-size: 1.1em;'>"
                                    + "{0}</span></td>", Convert.ToString(leitor[i]));
                            ++par;
                            linhas += ""
                                + "<tr class='linha'" + (par % 2 == 0 ? "" : "style='background-color:#eee;'") + ">"
                                + linha
                                + "</tr>" + Environment.NewLine;
                        }
                        linhas += "</tbody>" + Environment.NewLine;
                        string tabela = string.Format("<table class='tabela' cellspacing=0 cellpadding=0>{0}</table>", linhas.ToString());

                        string para = XMLComandoSQL.Para;
                        string de = XMLComandoSQL.De;
                        //string para = "*****@*****.**";
                        string corpo = email.CorpoMensagem.Replace(tags[0].Value, tabela);

                        MailMessage mail = new MailMessage(de, para, email.Assunto, corpo);
                        mail.IsBodyHtml = true;

                        SmtpClient smtp = new SmtpClient("smtp.fei.edu.br", 587);
                        smtp.EnableSsl = false;
                        smtp.UseDefaultCredentials = false;
                        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

                        if (enviar)
                            smtp.Send(mail);
                    }
                }
            }
            return 0;
        }