/// <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. } }
/// <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)); }
/// <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)); } }
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); }
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. } }