FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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... |
#2
|
|||
|
|||
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'); |
#3
|
|||
|
|||
Agradecimientos
Muchas gracias por la explicación ya he resuelto parcialmente el problema
|
|
|
|