Пример #1
0
        /// <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, "");
        }
Пример #2
0
 /// <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);
     }
 }
Пример #3
0
        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);
        }
Пример #4
0
        //**********************************************

        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);
     }
 }
Пример #6
0
 /// <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);
     }
 }
Пример #7
0
        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));
        }
Пример #8
0
 public static string ComposeMailSignature(EmailSmtp mailSettings)
 {
     return(ComposeMailSignature(mailSettings.AddSignature));
 }
Пример #9
0
 public EmailSender(IOptions <EmailSmtp> options)
 {
     _emailSmtp = options.Value;
 }
Пример #10
0
        public async Task SendContactEmailAsync(string name, string email, string subject, string message)
        {
            EmailSmtp smtp = new EmailSmtp();

            smtp.Send("*****@*****.**", string.Format("[Contato] - {0}", subject), message);
        }