public bool Actualizar_TipoMensaje(mail_Mensaje_Info correoInfo, ref string mensajeError) { try { return(Odata.Actualizar_TipoMensaje(correoInfo, ref mensajeError)); } catch (Exception) { return(false); } }
public Boolean Enviar_Correo_hold(mail_Mensaje_Info MensajeInfo, ref string mensajeErrorOut) { string SConfigCta = ""; try { if (param.AUTORIZADO_ENVIO_CORREO == false) { mensajeErrorOut = "No esta autorizado para envio de correo "; return(false); } string mensajeError = ""; string tipo_conex_cifrada_smtp = ""; //optengo el nombre de la pc para saber desde donde se envi el correo para auditar la duplicacion... MensajeInfo.Texto_mensaje = MensajeInfo.Texto_mensaje + " PC/Envio: " + Funciones.Get_Nombre_PC(); ///////////// mail_Cuentas_Correo_Info InfoCtaMail_Remitente = new mail_Cuentas_Correo_Info(); InfoCtaMail_Remitente = listMail_cta.FirstOrDefault(v => v.IdCuenta == MensajeInfo.IdCuenta); if (listMail_x_Empresa.Count == 0) { mensajeErrorOut = "No Existe cuentas para envio de correo configuradas en la base "; return(false); } if (InfoCtaMail_Remitente == null || InfoCtaMail_Remitente.IdCuenta == null) { mensajeErrorOut = "No existe una cuenta relaciona en la base para la cuenta del mensaje verique por base"; return(false); } if (!mailValida.email_bien_escrito(MensajeInfo.Para)) { mensajeErrorOut = "La cuenta de correo es Invalida "; MensajeInfo.IdTipo_Mensaje = eTipoMail.Mail_NO_Env_x_error; datamaMail.Actualizar_TipoMensaje(MensajeInfo, ref mensajeErrorOut); return(false); } if (MensajeInfo.IdCuenta == "" || MensajeInfo.IdCuenta == null) { InfoCtaMail_Remitente = listMail_cta.FirstOrDefault(v => v.cta_predeterminada == true); MensajeInfo.IdCuenta = InfoCtaMail_Remitente.IdCuenta; MensajeInfo.mail_remitente = InfoCtaMail_Remitente.direccion_correo; datamaMail.Actualizar_Datos_Cuenta(MensajeInfo, ref mensajeErrorOut); mensajeErrorOut = "la Cuenta Remitente no esta establecido en el mensaje se enviara con la cuenta por default ..."; } SmtpMail oSmtpMail_msg = new SmtpMail("ES-C1407722592-00106-56VB4AE2B4F8TB75-641B598EBE4D439A"); SmtpServer oSmtpServer = new SmtpServer(InfoCtaMail_Remitente.ServidorCorreoSaliente, InfoCtaMail_Remitente.Port_salida); EASendMail.SmtpClient oclienteSmtp = new EASendMail.SmtpClient(); if (InfoCtaMail_Remitente.Confirmacion_de_Entrega == true || InfoCtaMail_Remitente.Confirmacion_de_Lectura == true) { oSmtpMail_msg.DeliveryNotification = EASendMail.DeliveryNotificationOptions.OnFailure | EASendMail.DeliveryNotificationOptions.OnSuccess | EASendMail.DeliveryNotificationOptions.Delay; if (InfoCtaMail_Remitente.Confirmacion_de_Lectura == true) { oSmtpMail_msg.Headers.Add("Read-Receipt-To", InfoCtaMail_Remitente.direccion_correo); } if (InfoCtaMail_Remitente.Confirmacion_de_Entrega == true) { oSmtpMail_msg.Headers.Add("Disposition-Notification-To", InfoCtaMail_Remitente.direccion_correo); } } // si tiene archivo adjunto if (MensajeInfo.Tiene_Adjunto == true) { #region codigo viejo q actualiza el campo de mail #endregion //optengo los archivos adjuntos MensajeInfo.list_Archivos_Adjuntos = OdataArchivoAdjunto.Lista_ArchivoAdjunto_Mensaje_x_comprobante(MensajeInfo.IdMensaje, ref mensajeErrorOut); foreach (var item in MensajeInfo.list_Archivos_Adjuntos) { comprobante = new tb_Comprobante_Info(); comprobante = Bus_Comprobante_emisor.Comprobante_consulta_Id_Comprobante(item.IdEmpresa, item.IdComprobante, ref mensajeError); byte[] BinarioFileAdjunto = null; if (comprobante.IdComprobante != null) { // si la extencion ex .pdf lo creo en el tmp if (item.extensionArchivo.ToUpper() == ".PDF") { XtraReport Reporte = new XtraReport(); Rpt_Ride_bus Rpt_Ride_Bus = new Rpt_Ride_bus(listEmpr); Reporte = Rpt_Ride_Bus.Optener_reporte(comprobante, ref mensajeError); //pdf FileStream FileBinary; FileBinary = new FileStream(RutaArchivos + "\\" + comprobante.IdComprobante + ".pdf", FileMode.Create); DevExpress.XtraPrinting.PdfExportOptions Optione = new DevExpress.XtraPrinting.PdfExportOptions(); Reporte.ExportToPdf(FileBinary, Optione); FileBinary.Close(); // lleno la clase archivo adjunto con el pdf que se creo en el tmp DirectoryInfo Directorio_Pdf_Xml = new DirectoryInfo(RutaArchivos); List <FileInfo> listaFiles = Directorio_Pdf_Xml.GetFiles(comprobante.IdComprobante + ".pdf").ToList(); foreach (var itemBi in listaFiles) { FileStream file = new FileStream(RutaArchivos + itemBi.Name, FileMode.Open); BinarioFileAdjunto = new byte[file.Length]; file.Read(BinarioFileAdjunto, 0, Convert.ToInt32(file.Length)); file.Close(); } } } // LLENO EL BINARIO PARA EL XML if (item.extensionArchivo.ToUpper() == ".XML") { XmlDocument xmlOrigen = new XmlDocument(); xmlOrigen.Load(new StringReader(comprobante.s_XML)); BinarioFileAdjunto = Encoding.UTF8.GetBytes(xmlOrigen.OuterXml); } oSmtpMail_msg.AddAttachment(item.IdComprobante + item.extensionArchivo, BinarioFileAdjunto); } } tipo_conex_cifrada_smtp = InfoCtaMail_Remitente.tipo_Seguridad; if (InfoCtaMail_Remitente.tipo_Seguridad != "Ninguno") { oSmtpServer.User = InfoCtaMail_Remitente.Usuario; oSmtpServer.Password = InfoCtaMail_Remitente.Password; } switch (tipo_conex_cifrada_smtp) { case "SSL": oSmtpServer.ConnectType = SmtpConnectType.ConnectSSLAuto; oSmtpServer.Port = 465; break; case "TLS": oSmtpServer.ConnectType = SmtpConnectType.ConnectSSLAuto; break; case "Ninguno": oSmtpServer.ConnectType = SmtpConnectType.ConnectNormal; break; case "STARTTLS": oSmtpServer.ConnectType = SmtpConnectType.ConnectSTARTTLS; break; default: oSmtpServer.ConnectType = SmtpConnectType.ConnectNormal; break; } oSmtpMail_msg.To.Add(new EASendMail.MailAddress(MensajeInfo.Para)); if (MensajeInfo.Para_CC != "" && MensajeInfo.Para_CC != null) { string[] slistaCorreo = MensajeInfo.Para_CC.Split(';'); foreach (var item in slistaCorreo) { oSmtpMail_msg.Cc.Add(new EASendMail.MailAddress(item.Trim())); } } oSmtpMail_msg.From = new EASendMail.MailAddress(InfoCtaMail_Remitente.direccion_correo); oSmtpMail_msg.Subject = MensajeInfo.Asunto; oSmtpMail_msg.TextBody = MensajeInfo.Texto_mensaje; SConfigCta = "msg.From :" + oSmtpMail_msg.From.ToString() + "\n"; SConfigCta = SConfigCta + " msg.To:" + oSmtpMail_msg.To.ToString() + "\n"; SConfigCta = SConfigCta + " msg.Subject " + oSmtpMail_msg.Subject.ToString() + "\n"; SConfigCta = SConfigCta + "msg.Body :" + oSmtpMail_msg.TextBody.ToString() + "\n"; SConfigCta = SConfigCta + "oSmtpServer.Port:" + oSmtpServer.Port.ToString() + "\n"; SConfigCta = SConfigCta + " oSmtpServer.User:"******"\n"; SConfigCta = SConfigCta + " oSmtpServer.Password:"******"\n"; SConfigCta = SConfigCta + " oSmtpServer.Protocol :" + oSmtpServer.Protocol + "\n"; if (MensajeInfo.Para == "") { mensajeErrorOut = "No hay cuenta de correo a quien enviar "; return(false); } //enviando correo oclienteSmtp.SendMail(oSmtpServer, oSmtpMail_msg); if (MensajeInfo.IdMensaje > 0)// modificar { MensajeInfo.IdTipo_Mensaje = eTipoMail.Enviado; datamaMail.Actualizar_TipoMensaje(MensajeInfo, ref mensajeErrorOut); } else { MensajeInfo.IdTipo_Mensaje = eTipoMail.Enviado; datamaMail.GrabarMensajeDB(MensajeInfo, ref mensajeErrorOut); } return(true); } catch (Exception ex) { mensajeErrorOut = "catch (SmtpException ex) : " + ex.Message + " " + ex.InnerException + " datos de la cta:" + SConfigCta; return(false); } }