Exemplo n.º 1
0
        private void Enviar()
        {
            //CorreoDTO correo = new CorreoDTO();
            OrigenDestinoDTO        destino  = new OrigenDestinoDTO();
            List <OrigenDestinoDTO> destinos = new List <OrigenDestinoDTO>();

            destino.Direccion = txtPara.Text;
            destino.Cc        = false;
            destino.Cco       = false;

            correo.OrigenDestino = destinos;

            correo.Asunto  = txtAsunto.Text;
            correo.Detalle = txtMensaje.Text;
            correo.OrigenDestino.Add(destino);

            string fechahoyStr = "";

            //fecha = DateTime.Today;
            fechahoyStr = DateTime.Today.ToShortDateString();

            correo.Fecha      = DateTime.Parse(fechahoyStr);
            correo.TipoCorreo = Tipo.ENVIADO;

            if (txtCC.Text != "")
            {
                List <OrigenDestinoDTO> listaCC = PasajeCorreos.getInstance().getListaOrigenDestino(txtCC.Text);
                foreach (OrigenDestinoDTO item in listaCC)
                {
                    item.Cc  = true;
                    item.Cco = false;
                    correo.OrigenDestino.Add(item);
                }
            }

            if (txtCCO.Text != "")
            {
                List <OrigenDestinoDTO> listaCCO = PasajeCorreos.getInstance().getListaOrigenDestino(txtCCO.Text);
                foreach (OrigenDestinoDTO item in listaCCO)
                {
                    item.Cc  = false;
                    item.Cco = true;
                    correo.OrigenDestino.Add(item);
                }
            }


            try
            {
                MailServer.getInstance().enviarCorreo(correo);
                Controller.Correo.getInstance().agregarCorreo(correo);

                MessageBox.Show("Mensaje Enviado");

                ventanaprincipal.Actualizar();
            }
            catch (Exception ex) {
            }

            this.Dispose();
        }
Exemplo n.º 2
0
        public List <CorreoDTO> leerCorreo(CuentaDTO cuenta)
        {
            List <CorreoDTO> listaCorreos = new List <CorreoDTO>();

            try
            {
                ServerDTO server = new ServerDTO();
                server.Id = cuenta.Server;
                server    = Server.getInstance().ObtenerServer(server);

                //Sesión
                AdminPop adminpop = new AdminPop();

                adminpop.ConectarPop(server, cuenta);


                List <MailMessage> listaMensajes = adminpop.ObtenerMensajes();

                //listaMensajes.Add(adminpop.ObtenerMensaje(30));
                //check fechas

                foreach (MailMessage mensajeObtenido in listaMensajes)
                {
                    CorreoDTO correo = new CorreoDTO();
                    correo.IdCuenta = cuenta.IdCuenta;

                    OrigenDestinoDTO        od            = new OrigenDestinoDTO();
                    List <OrigenDestinoDTO> listaOrigenes = new List <OrigenDestinoDTO>();

                    od.Direccion         = PasajeCorreos.getInstance().obtenerCorreoBlank(mensajeObtenido.From.ToString());
                    od.Cco               = false;
                    od.Cc                = false;
                    correo.OrigenDestino = listaOrigenes;
                    correo.OrigenDestino.Add(od);

                    MailAddressCollection listaCC = mensajeObtenido.CC;

                    if (listaCC != null)
                    {
                        foreach (MailAddress ma in listaCC)
                        {
                            OrigenDestinoDTO ccdir = new OrigenDestinoDTO();
                            ccdir.Direccion = PasajeCorreos.getInstance().obtenerCorreoBlank(ma.ToString());
                            ccdir.Cc        = true;
                            ccdir.Cco       = false;
                            correo.OrigenDestino.Add(ccdir);
                        }
                    }

                    AttachmentCollection coleccionadjuntos = mensajeObtenido.Attachments;
                    List <AttachmentDTO> adjuntos          = new List <AttachmentDTO>();

                    if (coleccionadjuntos.Count > 0)
                    {
                        //No puedo usar esto porque previamente limpié la tabla de correos, por lo tanto no hay id.
                        //int maxid = Controller.Correo.getInstance().UltimoIdCorreo(cuenta);

                        foreach (Attachment adj in coleccionadjuntos)
                        {
                            AttachmentDTO adjunto = new AttachmentDTO();

                            //adjunto.IdCorreo = maxid + 1;
                            adjunto.Name = adj.Name;
                            adjunto.Path = adj.ContentStream.ToString();        //OJO

                            adjuntos.Add(adjunto);
                        }
                    }

                    correo.Adjuntos = adjuntos;

                    //MIRAR ACA
                    string fechaStr = mensajeObtenido.Subject.Substring(mensajeObtenido.Subject.Length - 10, 10);

                    correo.Fecha = DateTime.Parse(fechaStr);


                    correo.Asunto = mensajeObtenido.Subject.Substring(0, (mensajeObtenido.Subject.Length - 10));
                    correo.NumeroServidorCorreo = mensajeObtenido.To.Count;

                    correo.Detalle = mensajeObtenido.Body;

                    correo.TipoCorreo = Tipo.RECIBIDO;
                    listaCorreos.Add(correo);
                }
            }
            catch (ArgumentNullException ex) {
            }

            return(listaCorreos);
        }