FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas al descargar un Mail con los Indy
Buenas
Os comento así por encima un poco lo que me pasa. Tengo una aplicación que descarga de la bandeja de entrada de un buzón todos los mensajes para insertarlos en una BBDD, pero tengo un problema con un tipo de mensajes. Son mensajes que tienen como fichero adjunto otro mensaje. Al descargar el mensaje el objeto TIDMessage no distingue que sea un fichero adjunto si no lo trata como texto, y esto es un problema ya que en ese texto viene la cabecera de internet, vamos un pequeño caos. Además hay otro problema, si en ese mensaje adjunto a su vez tiene un fichero adjunto, este fichero tampoco lo detecta y lo guarda como texto binario, vamos una gran maravilla. Espero que mi explicación os haya valido de algo. espero vuestras respuestas Gracias de antemano y un saludo |
#2
|
||||
|
||||
Hola.
Sobre los adjuntos que son un mensaje... basta con tomarlos y asignarlos a un nuevo TidMessage, por ejemplo, con su método LoadFromStream. Si este mensaje tuviese archivos adjuntos, en ese momento se interpretarán correctamente. Si no te funciona, vuelve aca, que yo ahora no he tenido tiempo para comprobarlo antes de decirlo. Para identificar que adjuntos son otro mensaje, creo que se usa un tipo MIME especial para ellos, aunque no estoy plenamente seguro, si estoy seguro que con unos minutos de pruebas lo podes determinar vos mismo... sobre: Cita:
Por otro lado, si nos basamos en la clasificación de archivos binarios, como contraparte a los archivos de texto, o es texto, o es binario... pero no hay tal cosa como "texto binario". Es probable que te refiras a que los adjuntos se ven como un "texto ilegible". Es porque está codificados, de manera que puedan traspasar ciertas redes que no soportan la transmisión de ciertos códigos ASCII, y debido a que el protocolo asi lo exige. Si ves cualquier mensaje que tenga un archivo adjunto (de cualquier tipo mime que no sea TEXT/*) como texto plano, el adjunto aparecerá de esta manera. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Gracias por tu ayuda, Voy a probarlo ahora mismo y ya te comentaré
Gracias de nuevo y un saludo |
#4
|
|||
|
|||
Buenas otra vez,
He intentando probarlo, pero me quedo atascado... Aquí intento grabar la parte del mensaje de Texto a un TStream pero me da un error de violación de acceso a memoria. TidTExt(RecMensaje.MessageParts.Items[intindex]).Body.SaveToStream(TIdMessageCoder.SourceStream); TIdMessage.LoadFromStream(TIdMessageCoderSourceStream); Y ahí es dónde tengo el problema. Gracias de nuevo Y un saludo Última edición por jachguate fecha: 08-09-2004 a las 08:12:43. Razón: Quitar letra demasiado grande |
#5
|
||||
|
||||
Hola
Cita:
Ahora si he tenido delphi a mano, asi que he comprobado que el mime/type de los adjuntos que son otro mensaje es message/rfc822. He comprobado también que esta clase (TidAttachment) no tiene método SaveToStream, pero si un método SaveToFile, con el que seguramente usando un archivo temporal o intermedio solucionarás el asunto. Te recomiendo darte una vuelta por la ayuda de TidAttachment, y poner atención en sus propiedades: FileName, ContentType y ContentTransfer. Hasta luego. pd. He editado tu mensaje, que has puesto un tipo de letra demasiado grande. Si vuelve a ocurrite, se agradece que vos mismo lo edites.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate Última edición por jachguate fecha: 08-09-2004 a las 08:15:49. |
#6
|
|||
|
|||
El problema es que este mensaje adjunto en el MessagePart viene como TIdtext y no como TidAttachment, con lo cual no puedo realizar lo que dices.
Seguiré probando e investigando... Muchas gracias por tu ayuda Saludos PD: perdona por lo de la fuente pero se me fue un poco la cabeza. |
#7
|
||||
|
||||
Y si es asi, como se supone que identificas que el adjunto es otro mensaje, y no un texto cualquiera?
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#8
|
|||
|
|||
porque lo veo desde la bandeja de entrada del Outlook.
|
#9
|
||||
|
||||
Cita:
Cita:
En otras palabras... ¿cómo hace outlook para saberlo? ¿me explico ahora? Creo que si no fuese en un TidAttachment, con el mime type ya indicado... salvo que me haya perdido alguna parte... no habrá forma de hacerlo. Quizas estas viendo dos mensajes diferentes... o estas agarrando el MessagePart equivocado.... Hasta luego. pd. Supongo que el outulook seguira el estándar... al menos, el mensaje enviado ayer, y que me ha servido de prueba, es un forward enviado desde outlook express, de un forward enviado desde yahoo.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|