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 18-04-2004
rsotolongo rsotolongo is offline
Miembro
 
Registrado: ene 2004
Posts: 14
Poder: 0
rsotolongo Va por buen camino
Unhappy Attachments en mails

Todo comenzó con mi necesidad de enviar correos con archivos adjuntos a través de los componentes Indy 9 en Delphi 7 y miren que interesante está este código.

En él creo dos mensajes (m1 y m2) de los cuales solo al primero lleno una serie de campos y luego realizo una copia en m2 a través de SaveToStream/LoadFromStream. Pues resulta que al comparar los ficheros de salida m1.txt y m2.txt no son iguales como deberían ser perdiéndose en m2.txt el asunto del mensaje. Ahora bien, si comentamos la línea que adjunta el fichero code.txt al mensaje m1, los ficheros de salida son idénticos.

Puede alguien decirme qué está pasando aquí u otra forma de adjuntar ficheros a un mensaje.

procedure Doit;

var
m1, m2 : TIdMessage;
stream : TMemoryStream;

begin
m1 := TIdMessage.Create(nil);
m2 := TIdMessage.Create(nil);
m1.Body.Text := 'Cuerpo del mensaje';
TIdAttachment.Create(m1.MessageParts, 'code.txt');
m1.Recipients.Add;
m1.Recipients[0].Address := 'snake@redway.cu';
m1.SaveToFile('m1.txt');
stream := TMemoryStream.Create;
m1.SaveToStream(stream);
stream.Position := 0;
m2.LoadFromStream(stream);
m2.SaveToFile('m2.txt');
end;

Gracias de antemano...
Responder Con Cita
  #2  
Antiguo 19-04-2004
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 21
Julià T. Va por buen camino
Cuantos dolores de cabeza tuve con esto mismo, hasta que descubrí el funcionamiento de las propiedades NoDEcode, NoEncode.

Cada vez que pasas los datos a un stream/fichero o lo cargas, se recodifica la información y en algún caso se pierde.

Para que funcione correctamente y si no me equivoco tendrías que poner en
Código:
  
m1.NoEncode:=True;//creo que codifica cuando guarda
m1.SaveToFile('m1.txt');
stream := TMemoryStream.Create;
m1.SaveToStream(stream);
stream.Position := 0;
m2.NoDecode:=True;//creo que descodifica cuando lee
m2.LoadFromStream(stream);
m2.NoDecode:=True;
m2.SaveToFile('m2.txt');
Responder Con Cita
  #3  
Antiguo 19-04-2004
rsotolongo rsotolongo is offline
Miembro
 
Registrado: ene 2004
Posts: 14
Poder: 0
rsotolongo Va por buen camino
Talking Agradecimientos

Muchas gracias por la explicación ya he resuelto parcialmente el problema
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


La franja horaria es GMT +2. Ahora son las 02:58:04.


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