private void btnStart_Click(object sender, EventArgs e) { try { string mensajError = ""; NumeroPaginas = Bus_Mensaje.ObtenerNumPag(uC_Botones_Paginas1.Total_Registros_x_pagina, eTipoMail.Buzon_Ent, InfoCuenta.direccion_correo, uC_Botones_Paginas1.Cadena_Busqueda, ref mensajError); if (InfoCuenta == null) { mail_Cuentas_Correo_Bus bus_correo = new mail_Cuentas_Correo_Bus(); List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>(); lista_Correo = bus_correo.consultar(ref mensajError); InfoCuenta = lista_Correo.FirstOrDefault(q => q.direccion_correo == dir_correo); } if (InfoCuenta.ServidorCorreoEntrante.Length == 0 || InfoCuenta.Usuario.Length == 0 || InfoCuenta.Password.Length == 0) { MessageBox.Show("Por favor ingrese servidor, usuario y contraseña."); return; } Buzon_Entrada_Descarga(InfoCuenta); mostrar_mensajes(eTipoMail.Buzon_Ent, uC_Botones_Paginas1.IndicePagina, dir_correo); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString()); } }
public void mostrar_mensajes(eTipoMail TipoMail, int NumPag, string direccionCorreo) { try { string msg = ""; toolStripLabel1.Text = "Mail: " + direccionCorreo; dir_correo = direccionCorreo; if (InfoCuenta.IdCuenta == null) { mail_Cuentas_Correo_Bus bus_correo = new mail_Cuentas_Correo_Bus(); List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>(); lista_Correo = bus_correo.consultar(ref msg); InfoCuenta = lista_Correo.FirstOrDefault(q => q.direccion_correo == dir_correo); } usa_sll = Convert.ToBoolean((InfoCuenta.Usa_SSL_Conexion_para_Descarga_correo == null) ? true :(Boolean)InfoCuenta.Usa_SSL_Conexion_para_Descarga_correo); guardar_copia = Convert.ToBoolean((InfoCuenta.Guardar_1_copia_de_corre_en_server_mail == null) ? true : (Boolean)InfoCuenta.Guardar_1_copia_de_corre_en_server_mail); lista_Mensaje = new List <mail_Mensaje_Info>(Bus_Mensaje.consultar(TipoMail, direccionCorreo, NumPag, uC_Botones_Paginas1.Total_Registros_x_pagina, (uC_Botones_Paginas1.Cadena_Busqueda == null ? "" : uC_Botones_Paginas1.Cadena_Busqueda), ref msg)); NumeroPaginas = Bus_Mensaje.ObtenerNumPag(uC_Botones_Paginas1.Total_Registros_x_pagina, TipoMail, dir_correo, (uC_Botones_Paginas1.Cadena_Busqueda == null) ? "" : uC_Botones_Paginas1.Cadena_Busqueda, ref msg); uC_Botones_Paginas1.NumeroPaginas = NumeroPaginas; gridControlVisor_Mail_Buzon_Entrada.DataSource = lista_Mensaje; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString()); } }
private void UC_Mail_Buzon_Entrada_Load(object sender, EventArgs e) { try { try { string mensajError = ""; object empty = System.Reflection.Missing.Value; webMail.Navigate("about:blank"); string RutaFile = Path.GetTempPath(); int pos = RutaFile.LastIndexOf('\\'); if (pos != -1) { RutaFile = RutaFile.Substring(0, pos); } m_curpath = RutaFile; mail_Cuentas_Correo_Bus bus_correo = new mail_Cuentas_Correo_Bus(); List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>(); lista_Correo = bus_correo.consultar(ref mensajError); InfoCuenta = lista_Correo.FirstOrDefault(); //mostrar_mensajes(eTipoMail.Buzon_Ent, 1, InfoCuenta.direccion_correo); } catch (Exception ex) { } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString()); } }
private void descargar_correo_buzon_entrada() { try { string mensajError = ""; mail_Cuentas_Correo_Bus bus_correo = new mail_Cuentas_Correo_Bus(); List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>(); UC_Mail_Buzon_Entrada UC_Buz_Ent = new UC_Mail_Buzon_Entrada(); lista_Correo = bus_correo.consultar(ref mensajError); foreach (var item in lista_Correo) { mail_Cuentas_Correo_Info Info_Buz_Ent = new mail_Cuentas_Correo_Info(); Info_Buz_Ent = item; UC_Buz_Ent.Buzon_Entrada_Descarga(Info_Buz_Ent); } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString()); } }
private void btndescargarcorreo_Click(object sender, EventArgs e) { try { string mensajError = ""; if (InfoCuenta == null) { mail_Cuentas_Correo_Bus bus_correo = new mail_Cuentas_Correo_Bus(); List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>(); lista_Correo = bus_correo.consultar(ref mensajError); InfoCuenta = lista_Correo.FirstOrDefault(q => q.direccion_correo == dir_correo); } if (InfoCuenta.ServidorCorreoEntrante.Length == 0 || InfoCuenta.Usuario.Length == 0 || InfoCuenta.Password.Length == 0) { MessageBox.Show("Por favor ingrese servidor, usuario y contraseña."); return; } // cargo los ID de mensaje para no tener q ir a la DB lista_codMensajeId_Existentes = new List <string>(); lista_codMensajeId_Existentes = Bus_Mensaje.consultar_CodMail_Existentes(); btndescargarcorreo.Enabled = false; btnCancel.Enabled = true; lista_Mensaje = new List <mail_Mensaje_Info>(); string mensajeError = ""; ServerAuthType authType = ServerAuthType.AuthLogin; if (InfoCuenta.Tipo_Authenticacion == "APOP") { authType = ServerAuthType.AuthCRAM5; } else if (InfoCuenta.Tipo_Authenticacion == "NTLM") { authType = ServerAuthType.AuthNTLM; } // ServerProtocol protocol = (ServerProtocol)lstProtocol.SelectedIndex; ServerProtocol protocol = new ServerProtocol(); if (InfoCuenta.TipoCuenta == "POP3") { protocol = ServerProtocol.Pop3; } if (InfoCuenta.TipoCuenta == "IMAP4") { protocol = ServerProtocol.Imap4; } if (InfoCuenta.TipoCuenta == "EXCHA_WEB_SER") { protocol = ServerProtocol.ExchangeEWS; } if (InfoCuenta.TipoCuenta == "EXCHA_WEB_DAV") { protocol = ServerProtocol.ExchangeWebDAV; } usa_sll = (InfoCuenta.Usa_SSL_Conexion_para_Descarga_correo == null) ? false : (Boolean)InfoCuenta.Usa_SSL_Conexion_para_Descarga_correo; MailServer oServer = new MailServer(InfoCuenta.ServidorCorreoEntrante, InfoCuenta.Usuario, InfoCuenta.Password, usa_sll, authType, protocol); // Para el uso de la evaluación, por favor utilice "TryIt" como el código de licencia, de lo contrario el // será lanzado excepción "código de licencia no válida". Sin embargo, el objeto expirará en 1-2 meses, y luego // "versión de prueba expiró" se lanzará una excepción. MailClient oClient = new MailClient("EG-B1374632949-00215-D3BEB6416TE2E729-A84ADDF9C5A1C85F"); //Catching the following events is not necessary, //just make the application more user friendly. //If you use the object in asp.net/windows service or non-gui application, //You need not to catch the following events. //To learn more detail, please refer to the code in EAGetMail EventHandler region oClient.OnAuthorized += new MailClient.OnAuthorizedEventHandler(OnAuthorized); oClient.OnConnected += new MailClient.OnConnectedEventHandler(OnConnected); oClient.OnIdle += new MailClient.OnIdleEventHandler(OnIdle); oClient.OnSecuring += new MailClient.OnSecuringEventHandler(OnSecuring); oClient.OnReceivingDataStream += new MailClient.OnReceivingDataStreamEventHandler(OnReceivingDataStream); bool bMantener_copia_correo = (InfoCuenta.Guardar_1_copia_de_corre_en_server_mail == null) ? false : (Boolean)InfoCuenta.Guardar_1_copia_de_corre_en_server_mail; UIDLManager oUIDLManager = new UIDLManager(); try { // Carga existían registros UIDL a UIDLManager string uidlfile = String.Format("{0}\\{1}", m_curpath, m_uidlfile); oUIDLManager.Load(uidlfile); string mailFolder = String.Format("{0}\\inbox", m_curpath); if (!Directory.Exists(mailFolder)) { Directory.CreateDirectory(mailFolder); } m_bcancel = false; lblStatus.Text = "Conectando ..."; oClient.Connect(oServer); MailInfo[] infos = oClient.GetMailInfos(); lblStatus.Text = String.Format("Total {0} email(s)", infos.Length); // Eliminar el uidl local que no se existía en el servidor. oUIDLManager.SyncUIDL(oServer, infos); oUIDLManager.Update(); int count = infos.Length; if (count > 0) { lista_Mensaje = new List <mail_Mensaje_Info>(); } int CountError = 0; for (int i = 0; i < count; i++) { MailInfo info = infos[i]; CountError = i; //if (i == 2587) { MessageBox.Show(""); } //verificar en base NO debo ir a la base uno a uno sino se hace muy largo if (lista_codMensajeId_Existentes.Contains(info.UIDL) == false) { lblStatus.Text = String.Format("Retrieving {0}/{1}...", info.Index, count); Mail oMail = oClient.GetMail(info); System.DateTime d = System.DateTime.Now; System.Globalization.CultureInfo cur = new System.Globalization.CultureInfo("en-US"); string sdate = d.ToString("yyyyMMddHHmmss", cur); string fileName = String.Format("{0}\\{1}{2}{3}.eml", mailFolder, sdate, d.Millisecond.ToString("d3"), i); try//try1 { oMail.SaveAs(fileName, true); conta = 0; conta = oMail.To.ToList().Count(); sec = 0; foreach (var itemTo in oMail.To.ToList()) { sec = sec + 1; if (sec != conta) { para += itemTo.Address + "; "; } else { para += itemTo.Address; } } conta = 0; conta = oMail.Cc.ToList().Count(); sec = 0; foreach (var itemCopia in oMail.Cc.ToList()) { sec = sec + 1; if (sec != conta) { CC += itemCopia.Address + "; "; } else { CC += itemCopia.Address; } } } catch (Exception EX) { MessageBox.Show(EX.Message + " try 1"); } try//try2 { infoMensaje = new mail_Mensaje_Info(); infoMensaje.Asunto = oMail.Subject; infoMensaje.Asunto_texto_mostrado = oMail.Subject; // infoMensaje.codMensajeId = MessageID; infoMensaje.codMensajeId = info.UIDL; infoMensaje.fileName = fileName; infoMensaje.Para = para; infoMensaje.Para_CC = CC; infoMensaje.Fecha = oMail.ReceivedDate; infoMensaje.Texto_mensaje = oMail.TextBody; infoMensaje.Tiene_Adjunto = oMail.Attachments.Count() == 0 ? false : true; if (Convert.ToString(oMail.Priority) == "Normal") { infoMensaje.Prioridad = 0; } if (Convert.ToString(oMail.Priority) == "Alta") { infoMensaje.Prioridad = 1; } if (Convert.ToString(oMail.Priority) == "Baja") { infoMensaje.Prioridad = -1; } infoMensaje.Leido = false; infoMensaje.Respondido = false; infoMensaje.No_Leido = false; infoMensaje.mail_remitente = dir_correo; infoMensaje.Eliminado = false; infoMensaje.IdTipo_Mensaje = eTipoMail.Buzon_Ent; infoMensaje.IdCuenta = IdCuenta; foreach (var itemAdju in oMail.Attachments) { mail_Mensaje_Archi_Adjunto_Info infoAdju = new mail_Mensaje_Archi_Adjunto_Info(); string nomAdju = itemAdju.Name; string extAdj = Path.GetExtension(nomAdju); if (extAdj.ToUpper() == ".PDF" || extAdj.ToUpper() == ".XML") { infoAdju.extensionArchivo = extAdj; infoAdju.Archivo_adjunto = itemAdju.Content; infoAdju.descripcion_archi = itemAdju.Name; infoMensaje.list_Archivos_Adjuntos.Add(infoAdju); } } infoMensaje.Archivo_correo = System.IO.File.ReadAllBytes(infoMensaje.fileName); Bus_Mensaje.GrabarMensajeDB(infoMensaje, ref mensajeError); //lista_Mensaje.Add(infoMensaje); } catch (Exception ex) { MessageBox.Show(ex.Message + " try 2"); } oMail.Clear(); // si lblTotal.Text = String.Format("Total {0} email(s)", lstMail.Items.Count); if (bMantener_copia_correo) { // añadir el uidl correo electrónico a uidl archivo para evitar recuperamos la próxima vez. oUIDLManager.AddUIDL(oServer, info.UIDL, fileName); } } } if (!bMantener_copia_correo) { lblStatus.Text = "Borrando ..."; for (int i = 0; i < count; i++) { oClient.Delete(infos[i]); // Eliminar UIDL de archivo uidl local. oUIDLManager.RemoveUIDL(oServer, infos[i].UIDL); } } // Eliminar método sólo marcar el correo electrónico como eliminado, // Salir método puro los mensajes de correo electrónico desde el servidor exactamente. oClient.Quit(); //if (lista_Mensaje.Count() == 0) //{ // MessageBox.Show("No existen Correos de Entrada Nuevos"); // btndescargarcorreo.Enabled = true; // btnCancel.Enabled = false; // return; //} } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString()); } // Actualizar la lista uidl de archivo uidl local y luego podemos cargar la próxima vez. oUIDLManager.Update(); lblStatus.Text = "Completed"; pgBar.Maximum = 100; pgBar.Minimum = 0; pgBar.Value = 0; btndescargarcorreo.Enabled = true; btnCancel.Enabled = false; //mostrar_mensajes(eTipoMail.Buzon_Ent, dtp_desde.Value, dtp_hasta.Value, dir_correo); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString()); } }
void cargar_Correo_Entrada() { try { try { string mensajError = ""; mail_Cuentas_Correo_Bus bus_correo = new mail_Cuentas_Correo_Bus(); List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>(); lista_Correo = bus_correo.consultar(ref mensajError); var itemCuenta = lista_Correo.FirstOrDefault(q => q.direccion_correo == correo); IdCuenta = itemCuenta.IdCuenta; Pop3Client pop3Client; pop3Client = new Pop3Client(); pop3Client.Connect(itemCuenta.ServidorCorreoEntrante, itemCuenta.port_entrada, true); pop3Client.Authenticate(itemCuenta.direccion_correo, itemCuenta.Password); int count = pop3Client.GetMessageCount(); // int counter = 0; for (int i = count; i >= 1; i -= 1) { string MessageId = pop3Client.GetMessageHeaders(i).MessageId; if (Bus_Mensaje.Verifica_codMensajeId(MessageId) == false) { var itemIdMensaje = listaMensajes.FirstOrDefault(q => q.codMensajeId == MessageId); if (itemIdMensaje == null) { OpenPop.Mime.Message message = pop3Client.GetMessage(i); //Para listPara = new List <string>(); foreach (var item in message.Headers.To.ToList()) { listPara.Add(item.Address); } //con copia list_concopia = new List <string>(); foreach (var item in message.Headers.Cc.ToList()) { list_concopia.Add(item.Address); } //texto mensaje selectedMessagePart = message.FindFirstPlainTextVersion(); if (selectedMessagePart != null) { if (selectedMessagePart.IsText) { valida = selectedMessagePart.GetBodyAsText(); } } Email email = new Email() { MessageNumber = i, Subject = message.Headers.Subject, DateSent = message.Headers.DateSent, Prioridad = Convert.ToString(message.Headers.Importance), // From = string.Format("<a href = 'mailto:{1}'>{0}</a>", message.Headers.From.DisplayName, message.Headers.From.Address), // From = message.Headers.From.DisplayName, MessageId = message.Headers.MessageId, Para = para, Texto_mensaje = valida, CC = CC, To = listPara, conCopia = list_concopia }; List <MessagePart> attachments = message.FindAllAttachments(); foreach (MessagePart attachment in attachments) { email.Attachments.Add(new Attachment { FileName = attachment.FileName, ContentType = attachment.ContentType.MediaType, Content = attachment.Body }); } listaMail.Add(email); } } } if (listaMail.Count() == 0) { MessageBox.Show("No existen Correos de Entrada Nuevos"); return; } // gridControl2.DataSource = listaMail1; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void Frm_Correo_POP_IMAP_Load(object sender, EventArgs e) { try { // correo = "*****@*****.**"; // correo = "*****@*****.**"; correo = "*****@*****.**"; string mensajError = ""; mail_Cuentas_Correo_Bus bus_correo = new mail_Cuentas_Correo_Bus(); List <mail_Cuentas_Correo_Info> lista_Correo = new List <mail_Cuentas_Correo_Info>(); lista_Correo = bus_correo.consultar(ref mensajError); var itemCuenta = lista_Correo.FirstOrDefault(q => q.direccion_correo == correo); if (itemCuenta != null) { IdCuenta = itemCuenta.IdCuenta; } object empty = System.Reflection.Missing.Value; webMail.Navigate("about:blank"); // carga combos lstProtocol.Items.Add("POP3"); lstProtocol.Items.Add("IMAP4"); lstProtocol.Items.Add("Exchange Web Service - 2007/2010"); lstProtocol.Items.Add("Exchange WebDAV - Exchange 2000/2003"); lstProtocol.SelectedIndex = 0; lstAuthType.Items.Add("USER/LOGIN"); lstAuthType.Items.Add("APOP"); lstAuthType.Items.Add("NTLM"); lstAuthType.SelectedIndex = 0; string RutaFile = Path.GetTempPath(); int pos = RutaFile.LastIndexOf('\\'); if (pos != -1) { RutaFile = RutaFile.Substring(0, pos); } m_curpath = RutaFile; // LoadMails(); //consulta de la base de datos ////Consulta archivos adjuntos string mensajeError = ""; lista_Adjunto = bus_Adjunto.Lista_ArchivoAdjunto(ref mensajeError); mostrar_mensajes(eTipoMail.Buzon_Ent, correo); } catch (Exception ex) { BusSisLog.Log_Error(ex.Message.ToString(), eTipoError.ERROR, this.ToString()); MessageBox.Show(ex.Message.ToString()); } }