Enviar html en el cuerpo del mail desde VFP

492 views
Skip to first unread message

Lilux

unread,
Jul 24, 2017, 11:52:59 AM7/24/17
to Comunidad de Visual Foxpro en Español
Hola!

Gracias al excelente artículo de Luis María Guayán puedo mandar mails desde mi aplicación.
Uso foxypreviewer para dar formato html  al reporte que debe salir en el cuerpo del mail:

REPORT FORM \a-m-4-2 OBJECT TYPE 15 TO FILE "a-m.htm"   

El código del artículo de Luis María funciona perfecto y, dado que el cuerpo del mail es html, usé:

.CreateMHTMLBody("file:///C:/Sistemas/winadmi9/a-m.htm", 0)

En todos los navegadores el html se ve perfecto, pero al mandar el mail no sé porqué se pierde el formato y todos los datos aparecen uno a continuación del otro y... obviamente, no se entiende nada.

Si hay alguien que me pueda ayudar les estaré muy agradecida!

Dsanchez

unread,
Jul 24, 2017, 12:06:44 PM7/24/17
to publice...@googlegroups.com
Hola yo tengo un archivo Firma.html luego solo le agrego el nombre del remitente y hago lo siguiente y en el correo se ve bien.

cfile = Filetostr(Fullpath(Curdir())+'firmas\firma.html')
       
        TEXT TO cfile2 TEXTMERGE noshow
                </style>
                <table width="200">
                <table width="408" border="0" cellspacing="0" cellpadding="0">
                <td colspan="3" bgcolor="#FFFFFF"><p><span class="style3"><strong> <<'Servidor de Aplicaciones'>> </strong></span><br />
                <span class="style6"> <<'Area de Informatica'>> </span><br />
                <span class="style6">---------------------------------------</span><tr>
                </p>
        ENDTEXT
       
        cbody = varcuerpo + '</p>' + '</p>' +'</p>'+ cfile2 + '</p>' + '</p>' + cfile
       
        lctmpfile = Forceext(Addbs(Sys(2023))+Sys(2015),"html")
       
        =Strtofile(cbody,lctmpfile)
        .CreateMHTMLBody(lctmpfile)

Slds

Dsanchez

Elides Paredes

unread,
Jul 26, 2017, 12:50:05 PM7/26/17
to Comunidad de Visual Foxpro en Español
Amigo Daniel

Un respetuoso saludo.

Aunque me da pena decirlo, no tengo ni idea de que es lo que hace el código que presentas con un mensaje de correo, Serías tan amable de explicarme?.

Es que me suena como algo muy interesante. Y me estoy aprovechando de una frase que le robé a una amiga. "No hay pregunta tonta, si no sabes, hay tonto que no sabe porque no pregunta" Jajaja.. Eso da valor  porque no quiero ser tonto y necesito saber.

Claro, le pregunto a DSanchez porque lo dijo él. No obstante, agradezco a cualquiera que pueda sacarme la duda.

Agradecido...

Saludos.
Elides Paredes
Barquisimeto Venezuela

Jose Antonio Blasco

unread,
Jul 27, 2017, 2:27:39 AM7/27/17
to Comunidad de Visual Foxpro en Español
Buenos días Elides,
Para esta y otras cuestiones sobre el envio de mensajes con CDO, tal vez te sirva este articulo de Luis María Guayan:

https://comunidadvfp.blogspot.com/2014/09/mas-sobre-el-envio-de-mensajes-de.html

Un saludo.


Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2

Elides Paredes

unread,
Jul 27, 2017, 7:48:12 AM7/27/17
to Comunidad de Visual Foxpro en Español
Buen día amigo José

Mil gracias. Aún no lo he visto, pero con seguridad me va a servir. Si lo dice un maestro que cita a otro maestro.
Voy a Prestar mucha atención.

Elides Paredes

unread,
Jul 27, 2017, 7:57:08 AM7/27/17
to Comunidad de Visual Foxpro en Español

Disculpa amigo José.

Me apresuré a escribir antes de verlo.

Ya mi sistema envía correos, con imagen en el cuerpo, con  archivos anexo y todo gracias al aporte del Maestro Luis María. Dios lo tenga en la gloria... claro.. aquí con vida,no deseo que muera. jajaja. es muy valioso pero  puede estar en la gloria de Dios aquí también....jajaja..
 
Mi duda es para que sirve  éste  código que colocó Daniel y como lo uso?

cfile = Filetostr(Fullpath(Curdir())+'firmas\firma.html')
        
        TEXT TO cfile2 TEXTMERGE noshow
                </style>
                <table width="200">
                <table width="408" border="0" cellspacing="0" cellpadding="0">
                <td colspan="3" bgcolor="#FFFFFF"><p><span class="style3"><strong> <<'Servidor de Aplicaciones'>> </strong></span><br />
                <span class="style6"> <<'Area de Informatica'>> </span><br />
                <span class="style6">---------------------------------------</span><tr>
                </p>
        ENDTEXT
        
        cbody = varcuerpo + '</p>' + '</p>' +'</p>'+ cfile2 + '</p>' + '</p>' + cfile
        
        lctmpfile = Forceext(Addbs(Sys(2023))+Sys(2015),"html")
        
        =Strtofile(cbody,lctmpfile)
        .CreateMHTMLBody(lctmpfile)

Antonio Meza

unread,
Jul 27, 2017, 9:24:58 AM7/27/17
to Comunidad de Visual Foxpro en Español
El truco para enviar html por correo es que debes usar <TABLE> y no <DIV> si ves el ejemplo que te pusieron usa <Table>.

saludos
Antonio Meza

Elides Paredes

unread,
Jul 27, 2017, 11:52:25 AM7/27/17
to Comunidad de Visual Foxpro en Español
Amigos.

Me da pena pero sigo sin entender, Tengo entendido que Html es un lenguaje para crear páginas web, que significa enviar archivos HTML  Por correo: ? que utilidad tiene?
Imagino que a algunos puede parecerles una pregunta tonta. Pero yo me siento mas tonto si no pregunto.

Saludos.

Les sabría agradecer si me ayudan a matar esa duda..

Elides Paredes
Barquisimeto Venezuela

Lilux

unread,
Jul 27, 2017, 12:12:14 PM7/27/17
to Comunidad de Visual Foxpro en Español
Hola Daniel,
Muchas gracias por tu aporte.

Hay algo en mi html que hace que al insertarlo con el comando:


CreateMHTMLBody("file:///C:/Sistemas/winadmi9/a-m.htm", 0)

hace que pierda el formato.

Por lo que entiendo de tu ejemplo, estás construyendo un html al que le agregas al final tu html de firmas.

En la instrucción :


cbody = varcuerpo + '</p>' + '</p>' +'</p>'+ cfile2 + '</p>' + '</p>' + cfile

Qué contiene la variable "varcuerpo"?

Tal vez me ayude a entender qué le falta a mi html.

Desde ya muchas gracias por tu ayuda!

Saludos,
Liliana

Jose Antonio Blasco

unread,
Jul 28, 2017, 2:30:16 AM7/28/17
to Comunidad de Visual Foxpro en Español
Buenos días Elides, y disculpa la tardanza por la diferencia horaria.

Entiendo que la variable "varcuerpo" corresponde al texto que el usuario puede introducir libremente.

Tal como yo lo veo, Daniel suma una parte variable, una parte con aspecto de tabla, supongo que para mejorar la presentación, y la firma.

Tengo un programa que envía correos electrónicos.  Voy a buscar como hago esa parte y te lo envio.

Un saludo.


Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Jose Antonio Blasco

unread,
Jul 28, 2017, 2:44:56 AM7/28/17
to Comunidad de Visual Foxpro en Español
Ya lo tengo Elides,
Una vez que tengas el archivo "html" yo utilizo este codigo:

loMsg.CreateMHTMLBody("file://" + cFondo, 0 )

donde la variable "cFondo" contiene la ruta completa y nombre del archivo html

Espero que te sirva.

Un saludo.


Jose A. Blasco
Zaragoza - España
Visual FoxPro 9 SP2


Elides Paredes

unread,
Jul 28, 2017, 8:17:39 AM7/28/17
to Comunidad de Visual Foxpro en Español
Mi estimado amigo.José

En primer lugar, no encuentro palabras para agradecer tu bondad al compartir tus conocimientos y el hecho de estar al otro lado "del gran charco" para mi es algo maravilloso, En realidad no encuentro una mejor definición.
Maravilloso es lo mas apropiado.

Gracias a "Tíos"  (así dicen en España, jajaja) como tu he logrado mucho, Mil gracias. Para darte una idea lo que estudié en un instituto universitario fue mecánica, aunque tengo experiencia con electrónica, y electricidad. También soy analista programador de sistemas, soy inspector de riesgos y perito de autos ,y tengo muchos otros cursos de refrigeración industrial,etc. pero de informática me gradué hace 30 años, estudié con  basic, dbase y, clipper. Estaba comenzando la programación orientada a objetos. Así que todo lo que he podido desarrollar en programación es autodidacta y sobre todo gracias al internet, a los libros y mis mayores logros son gracias a éste foro.

Todo ésto que he dicho es para que todos los que lean éstas palabras vean como se puede ayudar a mejorar el mundo cuando se quiere hacer.

De nuevo mil gracias por tu ayuda.

y volviendo al tema, Hace tiempo que yo envío correo con imágenes en el cuerpo del correo, incluso a hotmail lo cual es imposible hacerlo desde el propio correo, Es decir, hotmail no ofrece eso a los usuarios y hace tiempo gracias al aporte de Luis María Guayan, (Dios lo bendiga) yo envío imágenes incluso Gif, Y me parece genial que yo, sin considerarme ningún experto como ustedes, puedo hacerlo. Pero aún no logro entender cual es el propósito de enviar un archivo HTML, es que acaso eso "corre" dentro del cuerpo del correo? . Ayer estaba investigando, pero tengo problemas con el internet, es demasiado lento porque el gobierno robolucionario es el que controla eso y bueno. sencillamente no sirve. Por lo pronto hoy seguiré investigando.

Saludos, 
Elides Paredes
Barquisimeto Venezuela.


Reply all
Reply to author
Forward
0 new messages