Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Problemas con Attachment en tIdPOP3 y tNMPOP3 (https://www.clubdelphi.com/foros/showthread.php?t=7212)

peazohuevon 08-02-2004 20:21:57

Problemas con Attachment en tIdPOP3 y tNMPOP3
 
Hola a todos. Mi problema es el siguiente. Me he configurado un gestor de correo para recibir correos de una cuenta determinada. Al principio lo hice con D6 y el componente TNMPOP3. Con este control recibo bien todos los ficheros salvo si vienen los datos (en mi caso son imágenes) en base64. Es decir, que las imágenes que vengan en el body incrustadas se graban sin decodificar(letras y numeros en Base64).
Luego probé con el tIdPop3, y parece que este control lo podia solucionar, pero cuando llegas a descargarte el attachment no lo decodifica bien y se graba igual que con el TNMPOP3. Llevo dos dias dandole vueltas y vueltas, y me estoy empezando a dar por vencido :confused: .
Se os ocurre algo? Os envio el código donde grabo los attach, que estan sacados de la demo de Indy.

if (Msg.MessageParts.Items[j] is TIdAttachment) then
begin // si es attchamente lo guardo
edit4.text := TIdAttachment( Msg.MessageParts.Items[j]).Filename;
TIdAttachment(Msg.MessageParts.Items[j]).SaveToFile(TIdAttachment(Msg.MessageParts.Items[j]).Filename);
end
else
begin //si es texto pal body
if Msg.MessageParts.Items[j] is TIdText then
begin
Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[j]).Body);
end;
end;

Por favor , ayuda!!!!!
Muchas Gracias

jachguate 09-02-2004 05:15:03

Estas seguro que viene bien codificado?

Quizas el problema no está en el cliente POP3, sino en el cliente SMTP que ha hecho originalmente el envío o incluso en uno de los servidores que ha procesado el mensaje. Te sugiero que intentes enviarlo con diferentes clientes y de diferentes cuentas, a ver si por alli salta algo...

Hasta luego,

;)

peazohuevon 09-02-2004 12:03:49

Hola, he realizado pruebas desde distintas cuentas y cliente SMTP y lo hace bien, pero porque no meten las imagenes en el body, las recibe como attachment normales. El problema es que el servidor SMTP que me envia las imagenes las incrusta . He configurado la cuenta en el Outlook y el propio outlook desencripta bien la foto en el body.

Yo solo consigo recoger el message header con esta informacion (solo muestro lo referente al MIME):

Content-Transfer-Encoding: binary
Content-Type: multipart/mixed; boundary="_----------=_107632220693330"
MIME-Version: 1.0
X-Mailer: MIME::Lite 3.01 (F2.6; B2.14; Q2.09)

y el message.body con la informacion encriptada:
/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwM
DAwMEAwODxAPDgwTExQUExMcGxsbHCAgICAgICAgICD/2wBDAQcHBw0MDRgQEBgaFREVGiAgICAg.....

Me estoy empezando a pegar contra las paredes :D

Gracias

jachguate 09-02-2004 14:55:57

Extraño comportamiento del cliente de SMTP que te las envía... dudo mucho que el servidor tenga algo que ver en esto...

Pues si estás seguro de que viene códificado en Base64, podes usar un TidDecoderMIME para obtener de vuelta tu imagen...

Hasta luego.

;)

peazohuevon 09-02-2004 23:37:07

Gracias por la ayuda. Al final he encontrado unas librerias llamadas DIMimeStreams. Tiene un procedimiento llamado MimeDecodeFile que lo desencripta bien Pero estas librerias me las he bajado en el curro , q tengo w2000 y me las ha desencriptado mal.Ahora en casa con xp las imagenes vienen bien. Mañana con w2000 probaré.

os envio el trozo de codigo, a mi me ha sido muy util. El codigo era para probar, por lo que no está muy bonito :D fich es Textfile, y pop es TNMPOP3


assignfile(fich,'c:\In.jpg');
rewrite(fich);
write(fich,pop.MailMessage.Body.Text);
closefile(fich);
mimedecodefile('c:\In.jpg' , 'c:\OUT.jpg');

Gracias


La franja horaria es GMT +2. Ahora son las 01:43:53.

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