Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-06-2006
smessina smessina is offline
Miembro
 
Registrado: ene 2006
Posts: 51
Poder: 19
smessina Va por buen camino
recibir correo con adjuntos

estuve buscando info al respecto pero los hilos que encontre no los entendi muy bien, estuve copiando y pegando codigo sin entender demasiado pero no pude resolver lo siguiente:

necesito descargar un mail y los adjuntos de estos, usando indy tengo delphi 7

copiando y pegando codigo hice lo siguiente (repito: sin entender como es el proceso para descargar y guardar en una carpeta un adjunto)

Código Delphi [-]
procedure Tfppal.suiButton7Click(Sender: TObject); 
var
    n,   nummsgs    : integer; 
  x:integer;
 begin
    Memo1.Lines.Clear;  
 //Conectamos! 
  idpop31.Connect(0);
  //Obtenemos el numero de emails que tenemos  
 NumMsgs:=idpop31.CheckMessages;
    Memo1.lines.add( 'Emails:' +IntToStr(NumMsgs) );
    for n:=1 to NumMsgs do begin
           for x:=0 to Pred( mail.MessageParts.Count) do
         begin
            if (mail.MessageParts.Items[x] is TIdAttachment) then
           begin // si es attchamente lo guardo
               Memo1.Lines.Add( TIdAttachment( mail.MessageParts.Items[x]).Filename);
               TIdAttachment(mail.MessageParts.Items[x]).SaveToFile(ExtractFilePath(GetModuleName(hInstance)) +
               TIdAttachment(mail.MessageParts.Items[x]).Filename);
               end;
           next;
           end;

            idpop31.RetrieveHeader(n,mail);
     Memo1.Lines.Add( 'Email Nº:'+IntToStr(n)+' De:'+mail.From.Text+' Tema:'+mail.Subject );
     mail.Clear;
   end;
   idpop31.Disconnect;
   end;


esto me descarga los encabezados de los mail y me los agregar a memo1 pero no me descarga los adjuntos.

alguna idea de como se hace o de que me està faltando?


gracias por su tiempo.

un abrazo

Última edición por smessina fecha: 02-06-2006 a las 02:56:01.
Responder Con Cita
  #2  
Antiguo 02-06-2006
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Buenas!

Tengo un programa que me descarga correos, y no veo mucha diferencia con el tuyo. De todas formas, donde tu guardas el adjunto:

Código Delphi [-]
TIdAttachment(mail.MessageParts.Items[x]).SaveToFile(ExtractFilePath(GetModuleName(hInstance)) +
               TIdAttachment(mail.MessageParts.Items[x]).Filename);

yo tengo el siguiente código:

Código Delphi [-]
if (Msg.MessageParts.Items[intIndex] is TIdAttachmentFile) then
begin
  ata := TIdAttachmentFile(Msg.MessageParts.Items[intIndex]);
  ata.SaveToFile('.\'+ata.FileName);
end;

Básicamente, lo guardo en el directorio del programa

Espero que te sirva

Edu
Responder Con Cita
  #3  
Antiguo 02-06-2006
smessina smessina is offline
Miembro
 
Registrado: ene 2006
Posts: 51
Poder: 19
smessina Va por buen camino
gracias por contestar epuigdef

gracias por contestar epuigdef


todavia no pude probarlo porque no llegue a casa.
... pero como que tienes declarado a ata en el ejemplo de codigo?


Código Delphi [-]
ata := TIdAttachmentFile(Msg.MessageParts.Items[intIndex]);
  ata.SaveToFile('.\'+ata.FileName);

gracias por tu tiempo.

un abrazo
Responder Con Cita
  #4  
Antiguo 04-06-2006
smessina smessina is offline
Miembro
 
Registrado: ene 2006
Posts: 51
Poder: 19
smessina Va por buen camino
Thumbs up ya lo solucione

gracias por su ayuda.


ya pude solucionarlo

me faltaba poner

Código Delphi [-]
idpop31.Retrieve(n,mail);


el codigo quedaria asi
Código Delphi [-]
procedure Tfppal.suiButton7Click(Sender: TObject); 
var
    n,   nummsgs    : integer; 
  x:integer;
 begin
    Memo1.Lines.Clear;  
 //Conectamos! 
  idpop31.Connect(0);
  //Obtenemos el numero de emails que tenemos  
 NumMsgs:=idpop31.CheckMessages;
    Memo1.lines.add( 'Emails:' +IntToStr(NumMsgs) );
    for n:=1 to NumMsgs do begin
           idpop31.Retrieve(n,mail);
           for x:=0 to Pred( mail.MessageParts.Count) do
         begin
            if (mail.MessageParts.Items[x] is TIdAttachment) then
           begin // si es attchamente lo guardo
               Memo1.Lines.Add( TIdAttachment( mail.MessageParts.Items[x]).Filename);
               TIdAttachment(mail.MessageParts.Items[x]).SaveToFile(ExtractFilePath(GetModuleName(hInstance)) +
               TIdAttachment(mail.MessageParts.Items[x]).Filename);
               end;
           next;
           end;

            idpop31.RetrieveHeader(n,mail);
     Memo1.Lines.Add( 'Email Nº:'+IntToStr(n)+' De:'+mail.From.Text+' Tema:'+mail.Subject );
     mail.Clear;
   end;
   idpop31.Disconnect;

   end;
Responder Con Cita
  #5  
Antiguo 05-06-2006
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Ok! Felicidades por solucionarlo!

De todas formas, por si alguien más visita este hilo, te contesto la pregunta:

ata está definido como TIdAttachmentFile

Un saludo

Edu
Responder Con Cita
Respuesta



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
Como envio un correo con archivos adjuntos Alejandro73 Internet 4 08-04-2006 01:09:49
Problemas al Enviar Correo con Ciertas Dir. de Correo AGAG4 Internet 2 01-02-2006 20:37:42
Descargar ficheros adjuntos del correo Gmail D@byt Internet 1 11-01-2006 23:59:27
Aplicación que se conecte a cuenta de correo y lea los archivos adjuntos JamesBond_Mx Internet 4 06-12-2005 23:47:43
¿Cómo vaciar los datos adjuntos del envio de un correo? D@byt Internet 1 01-12-2005 13:24:43


La franja horaria es GMT +2. Ahora son las 04:42:52.


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