Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ficheros adjuntos en Indy con IdMessage (https://www.clubdelphi.com/foros/showthread.php?t=53893)

RaulChemical 04-03-2008 14:01:43

Ficheros adjuntos en Indy con IdMessage
 
Hola a todos!!!

Necesito guardar en un directorio los ficheros adjuntos que vienen en un correo.

Uso un TIdPOP3 para la conexión al correo y un TIdMessage para "retrievearme" el correo.

El caso es que no se como acceder a los ficheros adjuntos del mail.

Esto es lo que hago para bajarme los correos:

Código Delphi [-]
  try
    IdPOP31.Connect;
    IdMessage1.AttachmentTempDirectory := ExtractFileDir(Application.ExeName);
    for i := 1 to IdPOP31.CheckMessages do
    begin
      IdMessage1.Clear;
      IdPOP31.RetrieveHeader(i, IdMessage1);
      // tratamiento de la cabecera.........
      IdPOP31.Retrieve(i, IdMessage1);
    end;
    IdMessage1.Clear;
  finally
    IdPOP31.Disconnect;
  end;

Cuando hago el IdPOP31.Retrieve(i, IdMessage1); en el "AttachmentTempDirectory" me genera tantos ficheros como adjuntos tenga el mail, pero no consigo averiguar cual es el nombre del fichero. No he encontrado ninguna lista en TIdMessage que contenga la lista de "attachments".

Sabe alguien como hacerlo?

Muchas gracias a todos.

gluglu 04-03-2008 14:17:53

Código Delphi [-]
for ii := 0 to Pred(IdMessage1.MessageParts.Count) do begin

  if (IdMessage1.MessageParts.Items[ii] is TIdAttachmentFile) then begin
    //Caso de que fuera un adjunto
    AuxString1 := TIdAttachmentFile(IdMessage1.MessageParts.Items[ii]).Filename;
    ...
    f := TMemoryStream.Create;
    TIdAttachmentFile(IdMessage1.MessageParts.Items[ii]).SaveToStream(f);
 
    ...

  end
  else  // Resto del mensaje (p.ej. parte principal)
 
  ...
 
end;

Saludos ;)

RaulChemical 05-03-2008 16:45:33

Funciona.

Muchas gracias!!!


La franja horaria es GMT +2. Ahora son las 03:45: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