private void SendCompletedCallback(object sender, AsyncCompletedEventArgs e) { try { MailSent = false; string Token = (string)e.UserState; if (!e.Cancelled && e.Error == null) { MailSent = true; if (MailSent) { EmailApproval.ObservaçõesEnvio = "Mensagem enviada com Sucesso"; EmailApproval.Enviado = true; DBApprovalEmails.Update(EmailApproval); } } if (e.Error != null) { EmailApproval.ObservaçõesEnvio = "ERRO: " + e.Error.Message.ToString() + "Não foi possível enviar a mensagem " + DateTime.Now.ToString(); DBApprovalEmails.Update(EmailApproval); } } catch { } }
public void SendEmail() { if (EmailApproval == null) { return; } if (string.IsNullOrEmpty(From) && !IsValidEmail(From)) { EmailApproval.ObservaçõesEnvio = "Email do remetente inválido!"; try { DBApprovalEmails.Update(EmailApproval); } catch { } return; } if (To == null || To.Count <= 0) { EmailApproval.ObservaçõesEnvio = "Não há destinatários"; return; } try { DBApprovalEmails.Update(EmailApproval); } catch { } SmtpClient Client = new SmtpClient(Config.Host, Config.Port); NetworkCredential Credentials = new NetworkCredential(Config.Username, Config.Password); Client.UseDefaultCredentials = true; Client.Credentials = Credentials; Client.EnableSsl = Config.SSL; MailMessage MMessage = new MailMessage { From = new MailAddress(From, DisplayName) }; foreach (var t in To) { MMessage.To.Add(new MailAddress(t)); } foreach (var cc in CC) { if (IsValidEmail(cc)) { MMessage.CC.Add(cc); } } foreach (var bcc in BCC) { if (IsValidEmail(bcc)) { MMessage.Bcc.Add(bcc); } } MMessage.Subject = Subject; MMessage.Body = Body; MMessage.IsBodyHtml = IsBodyHtml; Client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback); string UserState = "EmailAprovações"; Client.SendAsync(MMessage, UserState); //MMessage.Dispose(); }