/// <summary> /// Ejecuta el envío de correos en un thread independiente /// </summary> /// <param name="e">trxVentas</param> protected override void OnDoWork(DoWorkEventArgs e) { int errores = 0; int i = 1; string asunto = ""; string cuerpo = ""; ReportProgress(0, "Iniciando proceso...\r\n"); object[] args = e.Argument as object[]; vwCfdTransaccionesDeVenta trxVenta = (vwCfdTransaccionesDeVenta)args[0]; cfdReglasEmail cliente = new cfdReglasEmail(_Conex, _Param); if (!cliente.SeccionesEmail(ref asunto, ref cuerpo)) { e.Result = "No puede enviar e-mails \r\n"; ReportProgress(100, cliente.ultimoMensaje + "\r\n"); return; } //log de facturas xml emitidas y anuladas cfdReglasFacturaXml doc = new cfdReglasFacturaXml(_Conex, _Param); EmailSmtp mail = new EmailSmtp(_Param.emailSmtp, _Param.emailPort, _Param.emailUser, _Param.emailPwd, _Param.emailSsl); ReglasME maquina = new ReglasME(_Param); string eBinario = ""; trxVenta.Rewind(); //move to first record do { if (CancellationPending) { e.Cancel = true; return; } if (trxVenta.Voidstts == 0) //documento no anulado { if (maquina.ValidaTransicion(_Param.tipoDoc, "ENVIA EMAIL", trxVenta.EstadoActual, "enviado")) { if (!cliente.ProcesaEnvioMail(mail, trxVenta.CUSTNMBR, trxVenta.Docid, trxVenta.Soptype, trxVenta.Sopnumbe, trxVenta.NombreCliente, trxVenta.EstadoActual, maquina.eBinarioNuevo, trxVenta.Mensaje, asunto, cuerpo)) { eBinario = maquina.eBinActualConError; errores++; } else { eBinario = maquina.eBinarioNuevo; } doc.ActualizaFacturaEmitida(trxVenta.Soptype, trxVenta.Sopnumbe, _Conex.Usuario, "emitido", "emitido", eBinario, maquina.EnLetras(eBinario) + cliente.ultimoMensaje); } } ReportProgress(i * 100 / trxVenta.RowCount, "Doc:" + trxVenta.Sopnumbe + " " + cliente.ultimoMensaje + maquina.ultimoMensaje + "\r\n"); i++; cliente.ultimoMensaje = ""; } while (trxVenta.MoveNext() && errores < 10); e.Result = "Envío de Emails finalizado! \r\n"; ReportProgress(100, ""); }
/// <summary> /// Creating new semtp record in DB /// </summary> /// <param name="emailSmtp"></param> /// <returns></returns> public bool CreateEmailSmtp(EmailSmtp emailSmtp) { try { _emailSmtpDataContext.EmailSmtps.Add(emailSmtp); _emailSmtpDataContext.SaveChanges(); return(true); } catch (Exception e) { MessageBox.Show(e.Message); return(false); } }
public async Task SendNewUserEmailAysnc(string to, Guid token, string firstName) { string urlToken = "https://www.bolao.com.br?token=" + token; string emailContent = string.Format(@" Olá {0}, estamos quase lá!<br /> Por favor click no link abaixo para confirmar seu cadastro. <br /> <a href='{1}' target='_blank'>Confirmar cadastro</a><br /><br />! Caso você não tenha realizado nenhum cadastro em nosso sistema, favor desconsiderar esta mensagem." , firstName, urlToken); EmailSmtp smtp = new EmailSmtp(); smtp.Send(to, "Confirmação de Cadastro", emailContent); }
//********************************************** public CFDReglasEmailRespuesta(IConexionAFuenteDatos conex, IParametros Param) { try { iErr = 0; _Conexion = conex; _Param = Param; _motorDeCorreo = new EmailSmtp(_Param.emailSmtp, _Param.emailPort, _Param.emailUser, _Param.emailPwd, _Param.emailSsl); } catch (Exception re) { iErr++; sMsj = "Excepción al iniciar el motor de correos. " + re.Message + "[cfdReglasEmail()]"; } }
/// <summary> /// Deleting existing record of smtp in DB /// </summary> /// <param name="emailSmtp"></param> /// <returns></returns> public bool DeleteEmailSmtp(EmailSmtp emailSmtp) { try { _emailSmtpDataContext.EmailSmtps.Attach(emailSmtp); _emailSmtpDataContext.EmailSmtps.DeleteOnSubmit(emailSmtp); _emailSmtpDataContext.SubmitChanges(); return(true); } catch (Exception e) { MessageBox.Show(e.Message); return(false); } }
/// <summary> /// Editing existing record in DB /// </summary> /// <param name="emailSmtp"></param> /// <returns></returns> public bool EditEmailSmtp(EmailSmtp emailSmtp) { try { EmailSmtp nEmailSmtp = _emailSmtpDataContext.EmailSmtps.Single(e => e.Id == emailSmtp.Id); nEmailSmtp.SmtpServer = emailSmtp.SmtpServer; nEmailSmtp.Port = emailSmtp.Port; _emailSmtpDataContext.SaveChanges(); return(true); } catch (Exception e) { MessageBox.Show(e.Message); return(false); } }
public bool ProcesaEnvioMail(EmailSmtp mail, string custnmbr, string docId, short Soptype, string Sopnumbe, string nombreCliente, string eBinarioActual, string eBinarioNuevo, string Mensaje, string asunto, string cuerpo) { cfdReglasFacturaXml doc = new cfdReglasFacturaXml(_Conexion, _Param); //log de facturas xml emitidas y anuladas List <string> Adjunto = new List <string>(); DireccionesEmail dir = this.ObtieneDirecciones(custnmbr); string nombreArchivo = Utiles.FormatoNombreArchivo(docId + Sopnumbe + "_" + custnmbr, nombreCliente, 20); //Si hay error al obtener direcciones, no continuar if (ultimoMensaje.Equals(string.Empty)) { if (_Param.emite) { Adjunto.Add(Mensaje.Replace("Almacenado en ", "") + "." + _Param.emailAdjEmite); //xml o zip } if (_Param.imprime) { Adjunto.Add(Mensaje.Replace("Almacenado en ", "") + "." + _Param.emailAdjImprm); //pdf } if (mail.SendMessage(Utiles.Derecha(dir.mailTo, dir.mailTo.Length - 1), _Param.emailAccount, asunto.Trim() + " (" + nombreArchivo + ")", cuerpo, Utiles.Derecha(dir.mailCC, dir.mailCC.Length - 1), Utiles.Derecha(dir.mailCCO, dir.mailCCO.Length - 1), _Param.replyto, Adjunto)) { doc.RegistraLogDeArchivoXML(Soptype, Sopnumbe, "E-mail enviado.", "0", _Conexion.Usuario, "", "enviado", eBinarioNuevo, "E-mail enviado el " + DateTime.Today.ToString()); } else { numMensajeError++; } } else { numMensajeError++; } ultimoMensaje = ultimoMensaje + mail.ultimoMensaje + doc.ultimoMensaje; return(ultimoMensaje.Equals(string.Empty)); }
public static string ComposeMailSignature(EmailSmtp mailSettings) { return(ComposeMailSignature(mailSettings.AddSignature)); }
public EmailSender(IOptions <EmailSmtp> options) { _emailSmtp = options.Value; }
public async Task SendContactEmailAsync(string name, string email, string subject, string message) { EmailSmtp smtp = new EmailSmtp(); smtp.Send("*****@*****.**", string.Format("[Contato] - {0}", subject), message); }