public Task SendEmailAsync(string destEmail, MailAddress sourceEmail, string subject, string message) { try { var myMessage = new SendGrid.SendGridMessage(); myMessage.AddTo(destEmail); myMessage.From = sourceEmail; myMessage.Subject = subject; myMessage.Text = message; myMessage.Html = message; myMessage.AddBcc(_config["mailSettings:contactForm:destinationEmailAddress"]); var credentials = new NetworkCredential( _options.SendGridUser, _options.SendGridPassword); var transportWeb = new SendGrid.Web(credentials); return(transportWeb.DeliverAsync(myMessage)); } catch (Exception ex) { _logger.LogError($"Error in Message Sender: SendEmailAsync", ex); throw ex; } }
public void Send(Context context) { Task.Run(() => { try { var sendGridMessage = new SendGrid.SendGridMessage(); sendGridMessage.From = Addresses.From(From); Addresses.GetEnumerable( context: context, addresses: To) .ForEach(to => sendGridMessage.AddTo(CreateAddressInfo(to))); Addresses.GetEnumerable( context: context, addresses: Cc) .ForEach(cc => sendGridMessage.AddCc(CreateMailAddress(cc))); Addresses.GetEnumerable( context: context, addresses: Bcc) .ForEach(bcc => sendGridMessage.AddBcc(CreateMailAddress(bcc))); sendGridMessage.Subject = Subject; sendGridMessage.Text = Body; new SendGrid.Web(new System.Net.NetworkCredential( Parameters.Mail.SmtpUserName, Parameters.Mail.SmtpPassword)) .DeliverAsync(sendGridMessage); } catch (Exception e) { new SysLogModel(Context, e); } }); }
public void Send() { Task.Run(() => { var sendGridMessage = new SendGrid.SendGridMessage(); sendGridMessage.From = Addresses.From(From); Addresses.GetEnumerable(To).ForEach(to => sendGridMessage.AddTo(to)); Addresses.GetEnumerable(Cc).ForEach(cc => sendGridMessage.AddCc(cc)); Addresses.GetEnumerable(Bcc).ForEach(bcc => sendGridMessage.AddBcc(bcc)); sendGridMessage.Subject = Subject; sendGridMessage.Text = Body; new SendGrid.Web(new System.Net.NetworkCredential( Parameters.Mail.SmtpUserName, Parameters.Mail.SmtpPassword)) .DeliverAsync(sendGridMessage); }); }
/// <summary> /// Envia Email por sendgrid (utiliza la clave de sicsoft para el envío) /// </summary> /// <param name="para">Destinatario de Email (pueden ser varios separados por punto y coma (;))</param> /// <param name="copia">Emails a los que se desea enviar copia (pueden ser varios separados por punto y coma (;))</param> /// <param name="copiaOculta">Emails a los que se desea enviar copia oculta (pueden ser varios separados por punto y coma (;))</param> /// <param name="de">Email que se desea aparezca como remitente </param> /// <param name="displayName">Nombre que se desea mostrar como remitente</param> /// <param name="asunto">Asunto del Email</param> /// <param name="html">Html del body del email a enviar</param> /// <returns>Retorna true si el envío fué correcto o false si falla</returns> public bool Send(string para, string copia, string copiaOculta, string de, string displayName, string asunto, string html, string[] ArchivosAdjuntos = null) { try { string usaSendgrid = "0"; try { usaSendgrid = WebConfigurationManager.AppSettings["UsaSendgrid"].ToString(); } catch { usaSendgrid = "0"; } if (usaSendgrid == "1") { var myMessage = new SendGrid.SendGridMessage(); var paraList = para.Split(';'); foreach (var p in paraList) { if (p.Trim().Length > 0) { myMessage.AddTo(p.Trim()); } } var ccList = copia.Split(';'); foreach (var cc in ccList) { if (cc.Trim().Length > 0) { myMessage.AddCc(cc.Trim()); } } var ccoList = copiaOculta.Split(';'); foreach (var cco in ccoList) { if (cco.Trim().Length > 0) { myMessage.AddBcc(cco.Trim()); } } myMessage.From = new MailAddress(de, displayName); myMessage.Subject = asunto; myMessage.Html = html; if (ArchivosAdjuntos != null) { foreach (var archivo in ArchivosAdjuntos) { if (!string.IsNullOrEmpty(archivo)) { myMessage.AddAttachment(archivo); } } } //SendGrid.Web transportWeb = new SendGrid.Web("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"); string sendgridKey = ""; try { // Intenta utilizar el SendGridKey del config, la idea es que cada cliente // tenga su propio sendgrid sendgridKey = WebConfigurationManager.AppSettings["SendGridKey"]; } catch (Exception) { // si da error utilizar el key de SICSOFT sendgridKey = "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"; } SendGrid.Web transportWeb = new SendGrid.Web(sendgridKey); transportWeb.DeliverAsync(myMessage); } else { MailMessage mail = new MailMessage(); mail.Subject = asunto; mail.Body = html; mail.IsBodyHtml = true; //mail.From = new MailAddress(WebConfigurationManager.AppSettings["UserName"], displayName); mail.From = new MailAddress(WebConfigurationManager.AppSettings["UserName"], displayName); var paraList = para.Split(';'); foreach (var p in paraList) { if (p.Trim().Length > 0) { mail.To.Add(p.Trim()); } } var ccList = copia.Split(';'); foreach (var cc in ccList) { if (cc.Trim().Length > 0) { mail.CC.Add(cc.Trim()); } } var ccoList = copiaOculta.Split(';'); foreach (var cco in ccoList) { if (cco.Trim().Length > 0) { mail.Bcc.Add(cco.Trim()); } } if (ArchivosAdjuntos != null) { foreach (var archivo in ArchivosAdjuntos) { if (!string.IsNullOrEmpty(archivo)) { mail.Attachments.Add(new Attachment(archivo)); } } } SmtpClient client = new SmtpClient(); client.Host = WebConfigurationManager.AppSettings["HostName"]; client.Port = int.Parse(WebConfigurationManager.AppSettings["Port"].ToString()); client.UseDefaultCredentials = false; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = bool.Parse(WebConfigurationManager.AppSettings["EnableSsl"]); client.Credentials = new NetworkCredential(WebConfigurationManager.AppSettings["UserName"], WebConfigurationManager.AppSettings["Password"]); client.Send(mail); client.Dispose(); mail.Dispose(); } return(true); } catch (Exception) { return(false); } }