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