![]() |
email con shellexecute, como insertar un salto de linea
Estoy intentando generar un email, con el siguiente codigo, el problema es que en el cuerpo, aunque utilizo un tmemo, no se como poner saltos de linea, ya que a la hora de ver el email, esta todo seguido.
Cita:
|
¿Has probado pasando el "text" completo?, tmemo.lines.text
|
Hola,
Yo tuve que ingeniarme algo similar con Delphi, esto es, preparar un correo para ser enviado por el cliente de correo del usuario, pero, con el cuerpo del mismo debidamente formateado. Al cabo es cuestión de hacer algo parecido a lo siguiente, que es una traducción casi literal de la función que empleé con Delphi para el mismo asunto. Lo he probado y parece funcionar bien, aunque puedes limar la función tanto como te plazca. El truco está en añadir tantos "&body=linea del cuerpo" como líneas sean necesarias. En este caso podrías utilizar la función directamente con "TMemo", esto es, enviando como parámetro las líneas de este: Código:
void EnviarCorreo(AnsiString email, AnsiString asunto, TStrings* cuerpo) { |
Pues no lo pillo...
vamos por partes... He probado a meter en la cadena...\s, \\s, #13....y nada de nada, sigue sin ponerme un salto de linea, ni poniendolo como cadena, ni como caracter ni nada. He probado tb tu ejemplo, pero me genera una cadena asi: Intento meter el siguiente email: Email : email@email.com Asunto : asunto Cuerpo : 1 2 3 Código:
mailto:email@email.com?Subject=asunto&body=\"1\"&body=\"2\"&body=\"3\" - Argumento no valido en la linea de comandos. Compruebe el modificador que esta usando - Supongo que es normal, porque, hay 3 cuerpos en la cadena del email...eso no es normal, pero vamos que es el ejemplo que has puesto... algun consejillo? |
Hola,
Puedo decirte (para empezar) que el ejemplo que he puesto me ha funcionado perfectamente, pero, que lo he probado con Mozilla ThunderBird únicamente: no sé si funcinoaría en otros clientes de correo, pero, es de suponer que sí. El quid del asunto está en que cada línea del cuerpo del correo ha de añadirse en la cadena "body=%S", justamente, en la "%S". La función que he preparado (que ya he dicho que es una mera traducción de una que tengo en Delphi para lo mismo) requiere que le pases como parámetro un "TStrings", por ejemplo, las líneas de un "TMemo". Ya la propia función se encarga de formatear debidamente el correo, y, como te digo, al menos en mi caso no tengo problemas al utilizarla. Es decir, prueba a pasarle como parámetro un "TStrings" a la función, las líneas del "TMemo" que sea, por ejemplo, porque debería irte bien. De todos modos, si quieres personalizar la función de más arriba como mejor te parezca, recuerda dónde está la "dificultad": cada línea del correo (incompresiblemente para mí, pero, así es o así al menos funciona) tiene que ir en una cadena "body=%S": ya podrás hacer pruebas para ver qué es lo que en realidad se pasa por la línea de comandos. Cita:
¡Suerte! ;) |
Puessssss...va a ser que no....pq he probado lo siguiente...y fijate en los resultados:
al poner como cuerpo : Código:
"&body=aaaa&body=bbbb&body=ccc" ?¿?¿?¿ hago acaso algo mal? |
SOLUCIONADO!!!!
de pura chiripa...buscando por el google...pero conseguido!!!! asi...al final de cada linea..para hacer un salto de linea, hay que poner esto: "%0D%0A" es decir si se quiere poner esto: Código:
1 Código:
&body=1%0D%0A2%0D%0A3%0D%0A; |
1 Archivos Adjunto(s)
Hola,
No sé si haces alguna cosa mal. ¿Con qué cliente de correo estás probándolo? Ya he dicho que con Mozilla ThunderBird yo no tengo problemas: acabo de probarlo de nuevo. Me he limitado a copiar la función de más arriba y la he llamado de la misma manera que también se indica. Todo va bien: el asunto del correo donde tiene que estar, el destinatario lo mismo, y, el cuerpo del correo tal como se espera, con las mismas líneas del "TMemo" que paso como parámetro a la función susomentada... No sé qué te diga... o sí... se me ocurre que tal vez tenga que ver con los caracteres del cuerpo del correo: ciertos caracteres pueden dar problemas. En el ejemplo que te adjunto se pretende preparar un cuerpo bastante extenso (unos tres o cuatro párrafos) y, sin embargo, todo parece ir bien... excepto por algunos caracteres, como las comillas, que he notado que desaparecen del cuerpo. No sé. tendrás que hacer pruebas, supongo, porque es posible que la "técnica" empleada no sea del todo válida ni "escalable", en el sentido de que enviar mucho texto por la línea de comandos a una aplicación puede tener consecuencias imprevistas: fundamentalmente que no te funcione lo que quieres hacer, creo yo. Me pregunto, por ejemplo, si no podrías enviar tú mismo el correo, con los componentes que tengas a mano en C++ Builder: de ese modo acaso te quitabas de estos problemas. Pero, en fin, esto es otro cantar. Tú sabrás lo que tienes que hacer mejor que nadie. ¿No? ;) |
Hola,
Cita:
|
La pagina donde vi lo de los caracteres fue:
http://www.vb-helper.com/howto_shell_mail.html He probado tu ejemplo y para ser justos he de reconocer que funciona a las mil maravillas...la cosa es k lo he probado en mi casa, donde yo tambien tengo el thunderbird...y funciona perfect!! el problema es que donde quiero que funcione es en ordenadores con microsoft outlook, que para generar un email, usan el microsoft word como editor de textos y a lo mejor por eso no funciona igual...mañana lo probare y te dire algo!! De todas maneras muchas gracias, funciona genial!! |
AGUA!!!
Con microsoft outlook no funciona!!!...y tendre que probar si mi metodo funciona con thunderbird.... de todos modos muchas GRACIAS |
La franja horaria es GMT +2. Ahora son las 00:11:45. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi