/// <summary>
        /// Encaminha uma mensagem para o Desenvolvedor
        /// </summary>
        /// <param name="mensagem">Mensagem</param>
        public static void EmailAlertaDesenvolvedor(string mensagem)
        {
            try
            {
                dadosEmail = new DadosEmail();
                email      = new Email();

                string Assunto = "Mensagem para o desenvolvedor";
                dadosEmail.Assunto      = "[ALERTA] " + Assunto;
                dadosEmail.EmailDestino = AppSetting.EmailAlertaDesenvolvedor;
                dadosEmail.Mensagem     = dadosEmail.MontaCorpo
                                          (
                    AppSetting.NomeProjeto,
                    Assunto,
                    string.Format(
                        "<h3>Origem da mensagem: API</h3><br />" +
                        "<b>Mensagem:</b> {0} <br /><br />" +
                        "<b>Data/Hora:</b> {1} <br /><br /> ",
                        mensagem,
                        DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")
                        ),
                    AppSetting.NomeProjeto
                                          );

                email.Enviar(dadosEmail);
            }
            catch
            {
                //Não terá tratamento para esse erro.
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Método que faz o envio do e-mail
        /// </summary>
        /// <param name="emailDestino">Esse é o e-mail que receberá a mensagem. Pode ser passado mais de um separando por ";"</param>
        /// <param name="assunto">Assunto que será exibido na caixa de entrada</param>
        /// <param name="mensagem">Mensagem do corpo do e-mail. Você pode usar a função "MontaCorpo" para auxiliar a montagem desse corpo da mensagem</param>
        /// <param name="assincrona">"true" se quiser o método assincrono e "false" para enviar sincrono</param>
        /// <returns>Retorna a situação do envio</returns>
        public bool Enviar(string emailDestino, string assunto, string mensagem, bool assincrona = true)
        {
            DadosEmail dadosEmail = new DadosEmail()
            {
                EmailDestino = emailDestino + ";",
                Assunto      = assunto,
                Mensagem     = mensagem
            };

            return(Enviar(dadosEmail, assincrona));
        }
Exemplo n.º 3
0
 /// <summary>
 /// Método que faz o envio do e-mail
 /// </summary>
 /// <param name="dadosEmail">Dados do e-mail a ser enviado</param>
 /// <param name="assincrona">"true" se quiser o método assincrono e "false" para enviar sincrono</param>
 /// <returns>Retorna a situação do envio</returns>
 public bool Enviar(DadosEmail dadosEmail, bool assincrona = true)
 {
     if (assincrona)
     {
         Task t = Task.Factory.StartNew(() =>
         {
             Envio(dadosEmail);
         });
         return(true);
     }
     else
     {
         return(Envio(dadosEmail));
     }
 }
Exemplo n.º 4
0
        private bool Envio(DadosEmail dadosEmail)
        {
            bool result = false;

            try
            {
                Valida(dadosEmail);

                string[] mailToVetor = (dadosEmail.EmailDestino.Split(';')).Distinct().ToArray();
                for (int i = 0; i < mailToVetor.Length; i++)
                {
                    if (mailToVetor[i] != "")
                    {
                        MailMessage message = new MailMessage(this.DadosSmtp.UserName, mailToVetor[i], dadosEmail.Assunto, dadosEmail.Mensagem)
                        {
                            IsBodyHtml   = true,
                            BodyEncoding = System.Text.Encoding.UTF8
                        };
                        SmtpClient client = new SmtpClient()
                        {
                            Host                  = this.DadosSmtp.Host,
                            Port                  = this.DadosSmtp.Port,
                            EnableSsl             = this.DadosSmtp.EnableSsl,
                            UseDefaultCredentials = this.DadosSmtp.UseDefaultCredentials
                        };
                        NetworkCredential cred = new NetworkCredential(this.DadosSmtp.UserName, this.DadosSmtp.Password);
                        client.Credentials = cred;
                        client.Send(message);

                        message = null;
                        client.Dispose();
                        client = null;
                    }
                    result = true;
                }
            }
            catch (EnvioEmailException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new EnvioEmailException(ex.Message, ex);
            }


            return(result);
        }
Exemplo n.º 5
0
        private void Valida(DadosEmail dadosEmail)
        {
            if (string.IsNullOrEmpty(dadosEmail.EmailDestino) || !dadosEmail.EmailDestino.Contains("@") || (dadosEmail.EmailDestino.Split(';')).Length == 0)
            {
                throw new EnvioEmailException("E-mail inválido.");
            }

            if (string.IsNullOrEmpty(dadosEmail.Assunto))
            {
                throw new EnvioEmailException("O assunto do e-mail não pode ser vazio.");
            }

            if (string.IsNullOrEmpty(dadosEmail.Mensagem))
            {
                throw new EnvioEmailException("A mensagem não pode ser vazia.");
            }
        }
        /// <summary>
        /// Envia log de erro para o e-mail do desenvolvedor
        /// Esse método é assincrono
        /// </summary>
        /// <param name="e">Exception gerada</param>
        public static void EmailLogErro(Exception e, string proc, string usuario = null, object dados = null, string procedure = null)
        {
            try
            {
                dadosEmail = new DadosEmail();
                email      = new Email();

                string Assunto = "Log de Erro";
                dadosEmail.Assunto      = "[ERRO] " + Assunto;
                dadosEmail.EmailDestino = AppSetting.EmailRecebeLogErro;
                dadosEmail.Mensagem     = dadosEmail.MontaCorpo
                                          (
                    AppSetting.NomeProjeto,
                    Assunto,
                    string.Format(
                        "<h3>Origem da mensagem: API</h3><br />" +
                        "<b>Mensagem:</b> {0} <br /><br />" +
                        "<b>Procedure:</b> {1} <br /><br />" +
                        "<b>Usuário:</b> {2} <br /><br />" +
                        "<b>Data/Hora:</b> {3} <br /><br /> " +
                        "<b>Exception:</b><br /> <pre>{4}</pre>" +
                        "<b>Dados:</b><br /> <pre>{5}</pre>",
                        e.Message,
                        procedure ?? "Não identificada.",
                        usuario ?? "Não identificado.",
                        DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"),
                        JsonConvert.SerializeObject(e, Formatting.Indented),
                        JsonConvert.SerializeObject(dados ?? "Não identificado", Formatting.Indented)
                        ),
                    AppSetting.NomeProjeto
                                          );

                email.Enviar(dadosEmail);
            }
            catch
            {
                //Não terá tratamento para esse erro.
            }
        }