Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2008
ANALBA ANALBA is offline
Miembro
 
Registrado: jul 2008
Posts: 10
Poder: 0
ANALBA Va por buen camino
Recibir Mensajes

Buenos dias, como comente en otro mensaje tengo un programa que envia correos, pero nunca he tratado de recibir, he visto un ejemplo en las indy de como reciben, pero este descarga las cabeceras y no el mensaje, ¿alguien sabe alguna forma de descargar los mensajes del servidor con indy 10?. Otra duda que tengo cuando se descargan estos mensajes hay alguna forma de guardarlos en una base de datos tipo MS Access, para luego yo poderlos gestionar por carpetas, consultas, etc.

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 24-07-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Yo lo hago de la siguiente manera:

Código Delphi [-]
 
Function TFrmMainform.ProcesaCorreo(PiNumCorreo: Integer): String;
Var
  LiNumMsgParts: Integer;         // Número de bloques del correo
  LStlCuerpoCorreo: TStringList;  // contenido del mensaje
  LStlcorreo: TStringList;  // Correo por almacenar
  LIdmMensaje: TIdMessage;        // Instancia del mensaje
Begin
  Result := 'Nada';
  Try
    Try
      LStlCuerpoCorreo := TStringList.Create;
      LStlcorreo := TStringList.Create;
      LIdmMensaje := TIdMessage.Create(self);
      LIdmMensaje.ContentType := 'text/plain';
      PopCorreo.Retrieve(PiNumCorreo,LIdmMensaje);
      If LIdmMensaje.MessageParts.Count = 0 Then
        LStlCuerpoCorreo.AddStrings(LIdmMensaje.Body)
      Else
        For LiNumMsgParts := 0 To Pred(LIdmMensaje.MessageParts.Count) - 1 Do
          If LIdmMensaje.MessageParts.Items[LiNumMsgParts] Is TIdText Then
            LStlCuerpoCorreo.AddStrings(TIdText(LIdmMensaje.MessageParts.Items[LiNumMsgParts]).Body);
      // Para evitar que se creen varios tickets a partir de un mismo correo, se
      // elimina el mensaje antes de procesarlo con el autómata
      PopCorreo.Delete(PiNumCorreo);
      If Result = 'Nada' then
        Begin
           ..............
        End;
    Finally
      LStlCuerpoCorreo.Free;
      LStlcorreo.Free;
      LIdmMensaje.Free;
    End;
  Except
    On Error: Exception Do
      Result := 'Ha ocurrido un error al guardar el mensaje. Error: ' + Error.message;
  End;
End;

Sobre guardarlo en access, pues es super sencillo en tu tabla incluyes un campo de tipo memo y listo, grabas el correo.

Saludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 28-07-2008
ANALBA ANALBA is offline
Miembro
 
Registrado: jul 2008
Posts: 10
Poder: 0
ANALBA Va por buen camino
Recibir Mensajes

Gracias por tu respuesta poliburro, he estado mirando el jeemplo que me diste y sobre el ejemplo que me bajaba solo las cabeceras e intentado acoplar el codigo tuyo, en el cual vi unas sentencias que realmente creia yo que eran lo que me faltaban, como entre otras poner en el pop.retrieve en vez de pop.retrieveheader, pero despues de estar dos dias probando cosas me sigue quedando el mensaje en el servidor, aparte que creo que no me lo baja correctamente, pues cuando se baja el mensaje si lleva alguna imagen me la pone como adjunto y el cuerpo del mensaje no se lee, aparte de que si aduntas una foto por ejemplo, no la abre correctamente. La verdad que voy algo perdido con la descarga de correos electronicos. Otra cosa que me comentas es que para guardar en acess los mails es muy sencillo. A mi no me gustaria guardarlo como un campo memo, sino poderlo guardar como quien lo manda, fecha del correo, adjunto, cuerpo etc. para posteriormente hacer busquedas es esto posible, he incluso como hace el outlook que cuando lo habras carge desde acess los correos que tenga en la carpeta que llamemos "entrada". Adjunto el codigo con el que he empezado a trabajar, por si sirve de ayuda.

Gracias de antemano y perdona por no haberte contestado antes, pero me hubiera gustado decirte que gracias a tu ejemplo ya lo habia conseguido, pero bueno tenia que probarlo.
Archivos Adjuntos
Tipo de Archivo: zip RecibirCorreo.zip (21,9 KB, 39 visitas)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recibir en ms el ping. rauros API de Windows 11 17-07-2008 09:38:30
Recibir Mensajes de Correo marcial Internet 2 11-06-2007 07:30:14
Alguien sabe de algun Chat(Componente) que no se cuelgue al recibir mensajes???? AGAG4 Varios 2 15-12-2004 15:55:47
Porque deja de recibir mensajes el Demo TcpServer de Delphi???? AGAG4 Varios 0 13-12-2004 17:14:56
recibir e-mail rex Varios 4 04-12-2003 23:39:27


La franja horaria es GMT +2. Ahora son las 08:59:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi