예제 #1
0
        static void Main(string[] args)
        {
            ba_Archivo_Transferencia_Data data = new ba_Archivo_Transferencia_Data();
            ba_Archivo_Transferencia_Info info = data.GetTransferenciaEnvioCorreo();

            if (info.IdArchivo > 0)
            {
                ba_parametros_Data datap = new ba_parametros_Data();
                ba_parametros_Info datai = datap.Get_Info_Banco_Otros_Parametros(info.IdEmpresa);
                if (datai != null && datai.IdEmpresa > 0 && !string.IsNullOrEmpty(datai.MailUsuario))
                {
                    ba_Archivo_Transferencia_Det_Data dataD = new ba_Archivo_Transferencia_Det_Data();
                    var lst = dataD.GetListEnvioCorreo(info.IdEmpresa, info.IdArchivo);
                    foreach (var item in lst)
                    {
                        try
                        {
                            MailMessage mail = new MailMessage();
                            mail.From    = new MailAddress(datai.MailUsuario);
                            mail.Subject = datai.MailAsunto;
                            mail.Body    = datai.MailCuerpo;

                            mail.Body = mail.Body.Replace("[VALOR]", item.Valor.ToString("c2"));
                            mail.Body = mail.Body.Replace("[NOMBREPROVEEDOR]", item.pe_nombreCompleto);
                            mail.Body = mail.Body.Replace("[METODO]", item.TieneCuenta ? "TRANSFERENCIA A CUENTA" : "PAGO EN VENTANILLA");

                            mail.To.Add(item.Correo);
                            mail.CC.Add(datai.MailCorreoCopia);
                            mail.IsBodyHtml = true;
                            try
                            {
                                #region smtp
                                SmtpClient smtp = new SmtpClient();
                                smtp.UseDefaultCredentials = false;
                                smtp.Host        = datai.MailHost;
                                smtp.EnableSsl   = datai.MailPermitirSSL ?? false;
                                smtp.Port        = datai.MailPuerto ?? 0;
                                smtp.Credentials = new NetworkCredential(datai.MailUsuario, datai.MailClave);

                                smtp.Send(mail);
                                #endregion
                            }
                            catch (Exception ex)
                            {
                                try
                                {
                                    MailMessage mailError = new MailMessage();
                                    mailError.From    = new MailAddress(datai.MailUsuario);
                                    mailError.Subject = "ERROR - " + datai.MailAsunto;
                                    mailError.Body    = "<p>Correo: " + item.Correo + "</p>";
                                    mailError.Body   += "<p>Proveedor: " + item.pe_nombreCompleto + "</p>";
                                    mailError.Body   += "<p>Valor: " + item.Valor.ToString("c2") + "</p>";

                                    mailError.Body += "<p>Error: " + ex.InnerException == null ? ex.Message : (ex.InnerException.InnerException == null ? ex.Message : ex.InnerException.InnerException.Message) + "</p>";

                                    mailError.To.Add("*****@*****.**");
                                    mailError.IsBodyHtml = true;
                                    #region smtp
                                    SmtpClient smtp = new SmtpClient();
                                    smtp.UseDefaultCredentials = false;
                                    smtp.Host        = datai.MailHost;
                                    smtp.EnableSsl   = datai.MailPermitirSSL ?? false;
                                    smtp.Port        = datai.MailPuerto ?? 0;
                                    smtp.Credentials = new NetworkCredential(datai.MailUsuario, datai.MailClave);
                                    smtp.Send(mailError);
                                    #endregion
                                }
                                catch (Exception)
                                {
                                }
                            }
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                }
            }
        }