Exemplo n.º 1
0
        public void CriarOuAtualizar(int idEvento, DTOConfiguracaoEmail dto)
        {
            ExecutarSeguramente(() =>
            {
                var evento         = ObterEventoOuExcecaoSeNaoEncontrar(idEvento);
                var repositorioCnf = Contexto.RepositorioConfiguracoesEmail;
                var configuracao   = repositorioCnf.Obter(idEvento);
                var EhParaCriar    = true;

                if (configuracao == null)
                {
                    configuracao = new ConfiguracaoEmail(evento);
                }
                else
                {
                    EhParaCriar = false;
                }

                configuracao.EnderecoEmail = dto.EnderecoEmail;
                configuracao.PortaServidor = dto.PortaServidor;
                configuracao.SenhaEmail    = dto.SenhaEmail;
                configuracao.ServidorEmail = dto.ServidorEmail;
                configuracao.TipoSeguranca = dto.TipoSeguranca;
                configuracao.UsuarioEmail  = dto.UsuarioEmail;

                if (EhParaCriar)
                {
                    repositorioCnf.Incluir(configuracao);
                }
                else
                {
                    repositorioCnf.Atualizar(configuracao);
                }
            });
        }
Exemplo n.º 2
0
        internal ConfiguracaoEmail ObterConfiguracao()
        {
            ConfiguracaoEmail config = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                #region Email

                Comando comando = bancoDeDados.CriarComando(@"select c.servidor_smtp, c.usuario_smtp, c.porta, c.ssl, c.remetente, c.senha, c.num_tentativa from cnf_email c");

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        config                      = new ConfiguracaoEmail();
                        config.SmtpServer           = reader["servidor_smtp"].ToString();
                        config.SmtpUser             = reader["usuario_smtp"].ToString();
                        config.Remetente            = reader["remetente"].ToString();
                        config.SmtpSenha            = reader["senha"].ToString();
                        config.NumeroTentativaEnvio = Convert.ToInt32(reader["num_tentativa"]);
                        config.Porta                = ((Convert.IsDBNull(reader["porta"]) || reader["porta"] == null) ? 25 : Convert.ToInt32(reader["porta"]));
                        config.EnableSsl            = ((Convert.IsDBNull(reader["ssl"]) || reader["ssl"] == null) ? false : Convert.ToBoolean(reader["ssl"]));
                    }

                    reader.Close();
                }

                #endregion
            }

            return(config);
        }
Exemplo n.º 3
0
        public GeradorDeNfce()
        {
            CfgServico        = ConfiguracaoServico.Instancia;
            CfgServico.tpAmb  = TipoAmbiente.Homologacao;
            CfgServico.tpEmis = TipoEmissao.teNormal;
            CfgServico.ProtocoloDeSeguranca = ServicePointManager.SecurityProtocol;

            var emitente = new emit
            {
                CNPJ  = "31808064000147",
                IE    = "9079550016",
                xFant = "Joao Victor Spinoza",
                xNome = "Joao Victor Spinoza"
            };

            var configuracaoDeEmail = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", "Teset123", "smtp.dominio.com", 587, true, true);

            var configuracaoDanfeNfe = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha);

            _configuracoes = new Configuracao(
                GetEnderecoEmitente(),
                CfgServico,
                emitente,
                configuracaoDeEmail,
                configuracaoDanfeNfe
                );
        }
        public GeradorDeNfce(ConfiguracaoServico cfgServico, X509Certificate2 cert)
        {
            _cfgServico = cfgServico;


            var emitente = new emit
            {
                CNPJ = "31808064000147",
                IE   = "9079550016",
                // ambiente produção
                //xFant = "Joao Victor Spinoza",
                //xNome = "Joao Victor Spinoza",
                xNome = nfeEmitadaHomolog,
                xFant = nfeEmitadaHomolog,
                CRT   = CRT.SimplesNacional
            };

            var configuracaoDeEmail = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", "Teset123", "smtp.dominio.com", 587, true, true);

            var configuracaoDanfeNfe =
                new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha, versaoQrCode: VersaoQrCode.QrCodeVersao2);

            _configuracoes = new Configuracao(
                GetEnderecoEmitente(),
                _cfgServico,
                emitente,
                configuracaoDeEmail,
                configuracaoDanfeNfe

                );

            _cert = cert;
            _configuracoes.CfgServico.Certificado.Serial = _cert.SerialNumber;
        }
        public async Task Enviar(string nomeDestinatario, string destinatario, string assunto, string mensagemHtml)
        {
            ConfiguracaoEmail configuracaoEmail = await ObterConfiguracoes();

            var message = Montarmensagem(nomeDestinatario, destinatario, assunto, mensagemHtml, configuracaoEmail);

            await ExecutarEnvio(configuracaoEmail, message);
        }
Exemplo n.º 6
0
 public Configuracao(enderEmit enderecoEmitente, ConfiguracaoServico configuracaoServico, emit emitente,
                     ConfiguracaoEmail configuracaoEmail, ConfiguracaoDanfeNfce configuracaoDanfeNfce)
 {
     EnderecoEmitente      = enderecoEmitente;
     CfgServico            = configuracaoServico;
     Emitente              = emitente;
     ConfiguracaoEmail     = configuracaoEmail;
     ConfiguracaoDanfeNfce = configuracaoDanfeNfce;
 }
 public ConfiguracaoApp()
 {
     CfgServico        = ConfiguracaoServico.Instancia;
     CfgServico.tpAmb  = TipoAmbiente.taHomologacao;
     CfgServico.tpEmis = TipoEmissao.teNormal;
     Emitente          = new emit {
         CPF = "", CRT = CRT.SimplesNacional
     };
     EnderecoEmitente  = new enderEmit();
     ConfiguracaoEmail = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", Resources.MensagemHtml, "smtp.dominio.com", 587, true, true);
     ConfiguracaoCsc   = new ConfiguracaoCsc("000001", "");
 }
 public ConfiguracaoApp()
 {
     CfgServico        = ConfiguracaoServico.Instancia;
     CfgServico.tpAmb  = TipoAmbiente.Homologacao;
     CfgServico.tpEmis = TipoEmissao.teNormal;
     CfgServico.ProtocoloDeSeguranca = ServicePointManager.SecurityProtocol;
     Emitente = new emit {
         CPF = "", CRT = CRT.SimplesNacional
     };
     EnderecoEmitente  = new enderEmit();
     ConfiguracaoEmail = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", Properties.Resources.MensagemHtml, "smtp.dominio.com", 587, true, true);
 }
        private static async Task ExecutarEnvio(ConfiguracaoEmail configuracaoEmail, MimeMessage message)
        {
            using (var client = new SmtpClient())
            {
                await client.ConnectAsync(configuracaoEmail.ServidorSmtp, configuracaoEmail.Porta, configuracaoEmail.UsarTls);

                await client.AuthenticateAsync(configuracaoEmail.Usuario, configuracaoEmail.Senha);

                await client.SendAsync(message);

                await client.DisconnectAsync(true);
            }
        }
Exemplo n.º 10
0
        internal void FimDaFila(int id, ConfiguracaoEmail configEmail)
        {
            Comando comando = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                comando = bancoDeDados.CriarComando(@"update tab_email t set t.data_fila = sysdate + numtodsinterval(:CheckIntervalMinuto, 'MINUTE') where t.id = :email");

                comando.AdicionarParametroEntrada("email", id, DbType.Int32);
                comando.AdicionarParametroEntrada("CheckIntervalMinuto", Settings.Default.CheckIntervalMinuto, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);
            }
        }
Exemplo n.º 11
0
 public ConfiguracaoApp()
 {
     CfgServico        = ConfiguracaoServico.Instancia;
     CfgServico.tpAmb  = TipoAmbiente.Homologacao;
     CfgServico.tpEmis = TipoEmissao.teNormal;
     CfgServico.ProtocoloDeSeguranca = ServicePointManager.SecurityProtocol;
     Emitente = new emit {
         CPF = "", CRT = CRT.SimplesNacional
     };
     EnderecoEmitente      = new enderEmit();
     ConfiguracaoEmail     = new ConfiguracaoEmail("*****@*****.**", "senha", "Envio de NFE", Resources.MensagemHtml, "smtp.dominio.com", 587, true, true);
     ConfiguracaoCsc       = new ConfiguracaoCsc("000001", "");
     ConfiguracaoDanfeNfce = new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha, documentoCancelado: true);
 }
Exemplo n.º 12
0
        public static bool Enviar(string[] para, string assunto, string mensagem, string[] paraOculto = null, string[] anexos = null)
        {
            try
            {
                ConfiguracaoEmail email = CarregaConfiguracao();

                MailMessage mail = new MailMessage()
                {
                    From = new MailAddress(email.De, email.NomeApresentacao)
                };

                foreach (string p in para)
                {
                    mail.To.Add(new MailAddress(p));
                }

                foreach (string p in paraOculto)
                {
                    mail.CC.Add(new MailAddress(p));
                }

                mail.Subject    = assunto;
                mail.Body       = mensagem;
                mail.IsBodyHtml = true;
                mail.Priority   = MailPriority.High;

                if (anexos != null)
                {
                    foreach (string anexo in anexos)
                    {
                        mail.Attachments.Add(new Attachment(anexo));
                    }
                }

                using (SmtpClient smtp = new SmtpClient(email.Dominio, email.Porta))
                {
                    smtp.Credentials = new NetworkCredential(email.Usuario, email.Senha);
                    smtp.EnableSsl   = true;
                    smtp.Send(mail);
                    return(true);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemplo n.º 13
0
        public EmailServico(IRepositorioConfiguracaoEmail repositorioConfiguracaoEmail)
        {
            if (repositorioConfiguracaoEmail is null)
            {
                throw new System.ArgumentNullException(nameof(repositorioConfiguracaoEmail));
            }
            var configuracoes = repositorioConfiguracaoEmail.Listar();

            if (configuracoes != null)
            {
                configuracaoEmail = configuracoes.FirstOrDefault();
            }
            else
            {
                throw new NegocioException("Não foi possível recuperar as configurações para envio de e-mail.");
            }
        }
Exemplo n.º 14
0
        protected override void Executar()
        {
            try
            {
                _config = _da.ObterConfiguracao();

                if (_config == null)
                {
                    throw new Exception("Não há linha na configuração do email. [cnf_email]");
                }

                Email email = _da.ObterEmailDeEnvio(_config.NumeroTentativaEnvio);

                while (email != null)
                {
                    try
                    {
                        Enviar(email);
                    }
                    catch (Exception exc)
                    {
                        Log.GerarLog(exc);
                    }
                    finally
                    {
                        if (email.Situacao != 2 && email.NumTentativas >= _config.NumeroTentativaEnvio)
                        {
                            _da.AlterarSituacao(email.Id, 3);
                        }
                        else
                        {
                            _da.FimDaFila(email.Id, _config);
                        }
                    }

                    email = _da.ObterEmailDeEnvio(_config.NumeroTentativaEnvio);
                }
            }
            catch (Exception exc)
            {
                Log.GerarLog(exc);
            }
        }
        /// <summary>
        /// Salvar configurações de serviços e remover  os registros anteriores.
        /// </summary>
        public bool salvar(ConfiguracaoEmail OConfiguracoes)
        {
            OConfiguracoes.setDefaultInsertValues();

            db.ConfiguracaoEmail.Add(OConfiguracoes);

            db.SaveChanges();

            bool flagSucesso = OConfiguracoes.id > 0;

            if (flagSucesso)
            {
                int?idOrganizacaoParam = OConfiguracoes.idOrganizacao;

                db.ConfiguracaoEmail.Where(x => x.flagExcluido == false && x.idOrganizacao == idOrganizacaoParam && x.id != OConfiguracoes.id)
                .Update(x => new ConfiguracaoEmail {
                    flagExcluido = true
                });

                CacheService.getInstance.remover(chaveCache, idOrganizacaoParam.toInt());
            }

            return(flagSucesso);
        }
 public EmailBuilder(ConfiguracaoEmail configuracaoEmail)
 {
     _configuracaoEmail = configuracaoEmail;
     _destinatarios     = new List <MailAddress>();
     _anexos            = new List <string>();
 }
 //Construtor
 public ConfiguracaoEmailForm()
 {
     this.ConfiguracaoEmail = new ConfiguracaoEmail();
 }
        public static ConfiguracaoEmail carregar()
        {
            ConfiguracaoEmail Config = new ConfiguracaoEmail();

            Config.contaEmailSistema = "*****@*****.**";

            Config.senhaEmailSistema = "123mudar";

            Config.servidorPOPEmailSistema = "mail.sinctec.com.br";

            Config.servidorSMTPEmailSistema = "mail.sinctec.com.br";

            Config.flagSSLPOPEmailSistema = "S";

            Config.flagSSLSMTPEmailSistema = "S";

            Config.portaPOPEmailSistema = 995;

            Config.portaSMTPEmailSistema = 587;

            Config.assinaturaEmail = ""
                                     + "<p class=\"left-15\">"
                                     + "<font color=\"#ffffff\"><b class=\"white\">Associatec</b><br />Fone: (55 11) 1111-1111<br /></font>"
                                     + "<a href=\"#DOMINIO#\" style=\"color:#ffffff\">#DOMINIO#</a>"
                                     + "</p>";

            Config.masterpageEmail = ""
                                     + "<!DOCTYPE html\">"
                                     + "<html lang=\"pt-br\">"
                                     + "<head>"

                                     + "<meta charset=\"utf-8\" />"
                                     + "<title>#NOME_APLICACAO#</title>"

                                     + "<style>"
                                     + ".logo{width: 166px;padding-top: 10px;padding-bottom: 10px;}"
                                     + ".titulo{margin-right: 15px;}"
                                     + ".right{text-align: right;margin-right: 15px;}"
                                     + ".borda-titulo{border-bottom: 6px solid #2ca5d0;}"
                                     + "p{color: #959499;}"
                                     + "b{color: #000000;}"
                                     + ".white{color: #ffffff !important;}"
                                     + ".back-titulo{background-color: #304149}"
                                     + ".back-footer{background-color: #2ca5d0;}"
                                     + ".back-footer td p{color: #ffffff !important;}"
                                     + ".left-15{margin-left: 15px;}"
                                     + "</style>"

                                     + "</head>"

                                     + "<body>"
                                     + "<table align=\"center\" width=\"650\" cellpadding=\"10\" cellspacing=\"0\" border=\"0\" style=\"background-color: #f2f2f2;font-family: 'Lato', Calibri, Arial, sans - serif;\">"

                                     + "<tr>"
                                     + "<td><a href=\"\"><img src=\"#URL_LOGO#\" alt=\"logo\" class=\"logo\"></a></td>"
                                     + "<td align=\"right\">#DATA_EMAIL# </td>"
                                     + "</tr>"

                                     + "<tr height=\"20\">"
                                     + "<td colspan=\"2\" class=\"borda-titulo\" bgcolor=\"#304149\"><br /><p class=\"titulo\" style=\"text-align:right;color:#ffffff;font-size:20px;\">#ASSUNTO#</p><br /></td>"
                                     + "</tr>"

                                     + "<tr height=\"2\"><td colspan=\"2\" bgcolor=\"#2ca5d0\"></td></tr>"

                                     + "<tr><td colspan=\"2\">#CONTEUDO_MENSAGEM#</td></tr>"

                                     + "<tr><td colspan=\"2\" bgcolor=\"#2ca5d0\">#ASSINATURA_ENVIO#</td></tr>"

                                     + "</table>"
                                     + "</body>"
                                     + "</html>";

            return(Config);
        }
        private static MimeMessage Montarmensagem(string nomeDestinatario, string destinatario, string assunto, string mensagemHtml, ConfiguracaoEmail configuracaoEmail)
        {
            var message = new MimeMessage();

            message.From.Add(new MailboxAddress(configuracaoEmail.NomeRemetente, configuracaoEmail.EmailRemetente));
            message.To.Add(new MailboxAddress(nomeDestinatario, destinatario));
            message.Subject = assunto;

            message.Body = new TextPart("html")
            {
                Text = mensagemHtml
            };
            return(message);
        }
Exemplo n.º 20
0
 public Email(IOptions <ConfiguracaoEmail> configuration)
 {
     _emailConfiguration = configuration.Value;
 }