Enviar correo en HTML con CSS

1,842 views
Skip to first unread message

Moisés Vázquez

unread,
Mar 14, 2012, 3:12:47 AM3/14/12
to desarrollad...@googlegroups.com
Hola a todos,

Estoy intentando enviar un correo por medio de la aplicación pero lo tengo que enviar en formato HTML, dicho HTML tiene CSS asociado en el código, el cual aunque el content type del correo sea: text/html y parse el String con HTML.toFrom(String) no soy capaz de escapar el CSS y me sale el CSS del HTML en el mismo correo.

¿Existe alguna forma de poder omitir el CSS, o bien de que se entienda como CSS? 

Muchas gracias, espero vuestra respuesta.

Javier Hdez

unread,
Mar 14, 2012, 6:36:54 AM3/14/12
to desarrollad...@googlegroups.com
Supongo que es vía Intents.

Lo de que se entienda como CSS? a qué te refieres?, no lo está haciendo ahora así, no le da estilo al Html?

A priori se me ocurre que al string le saques el estilo, estará en el head del HTML, así no le das estilo al HTML.

Otra es poner en el mime-type en vez de text/html pones text/plain y bye a todo, también al marcado claro.

A ver si te puede servir

Saludos

Moisés Vázquez

unread,
Mar 15, 2012, 8:55:36 AM3/15/12
to desarrollad...@googlegroups.com
Hola, si justo lo que quiero es que me reconozco los CSS y de esa forma que el HTML tome un formato determinado. 

No me sirve con mandar el correo en texto plano, debido a que si hago esto lo que ocurriría es que se me quitarían todos los links y no es lo deseado. Por tanto mi intención es que se pueda reconocer el CSS, ¿No es posible? Tengo que meterle algún parámetro al Intent en los extrar, o tengo que parsear la información de alguna otra forma. Hay alguna forma de quitarle el CSS con alguna función Java que yo no conozca.

Muchas gracias a todos, espero vuestra respuesta.

Javier Hdez

unread,
Mar 15, 2012, 9:19:16 AM3/15/12
to desarrollad...@googlegroups.com
Has probado a adjuntar el archivo css en el mail (como un adjunto), y hacer referencia a él con 'cid:tu_hoja_de_estilo.css' ?

pasa la doc de la clase que utilizas para eso a ver que hay porque yo no uso intents, solo javamail

Javier Hdez

unread,
Mar 15, 2012, 9:26:57 AM3/15/12
to desarrollad...@googlegroups.com
Aunque creo que no te va a servir, porque creo que algunos clientes de correo como Gmail evitan los adjuntos que sean .css

Lo mejor creo que sería incluir el estilo en el html.

CarloS Sing Ramos

unread,
Mar 15, 2012, 10:04:38 AM3/15/12
to desarrollad...@googlegroups.com
uhmm se me ocurre que puedes ponerle una ruta en el link en formato largo es decir:
www.miweb.com/estilo.css, de esa forma podria tener el estilo siempre reflejado

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/desarrolladores-android/-/h7eCg0Q-3uUJ.

Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.



--
Salu2
Linux Register User  #525697
--==[[Carlos Sing]]==--

Moisés Vázquez

unread,
Mar 15, 2012, 11:37:23 AM3/15/12
to desarrollad...@googlegroups.com
Hola a todos, 

El HTML no le puedo tocar por que me viene desde servidor, de tal forma que el CSS me viene incrustrado en el HTML. Por eso el al mandar el correo la aplicación de correo debería de leer el propio CSS:

¿Alguna idea? El archivo CSS no lo puedo adjuntar en el correo por que no dispongo de él.

Saludos!

Para publicar una entrada en este grupo, envía un correo electrónico a desarrolladores-android@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-android+unsub...@googlegroups.com

Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.

Jenkins

unread,
Mar 15, 2012, 7:44:17 PM3/15/12
to desarrolladores-android
Hola Moises.
Por lo que dices, intentas enviar un documento html que hace
referencia a una hoja de estilos que se encuentra en un servidor? Si
dices que no tienes acceso a esta hoja de estilos, fijate que tipo de
ruta estas utilizando en html para referenciar al CSS. Si este
documento html se encuentra en el mismo servidor que el CSS y esta
utilizando rutas relativas, siempre te dara fallo porque no encontrara
los estilos.

Javier Hdez

unread,
Mar 15, 2012, 7:49:55 PM3/15/12
to desarrollad...@googlegroups.com
Si que dispones de él, el la url donde esté, lo único que tienes que hacer es hacer referencia a él, lo de adjuntarlo era por si el estilo no estaba en ningún sitio.

Javier Hdez

unread,
Mar 15, 2012, 11:50:41 PM3/15/12
to desarrollad...@googlegroups.com
A ver si así se me entiende mejor (lo hice como más fácil sé hacerlo, igual con intents es más sencillo):

http://www.desarrolladores-android.com/index.php?option=com_k2&view=item&id=238:enviar-mail-con-marcado-html-y-estilo-css-en-android&Itemid=592

Espero que sea eso lo que necesitas, al clicar sobre el botón se envía un mail a la cuenta que añadas con el contenido de un html que está en la aplicación, en raw, y la hoja de estilos la obtiene de un servidor remoto, que creo que es tu caso. Luego al recibirlo tiene que aparecer este mismo ejemplo en tu cliente mail (me base en este ejemplo porque creo que decía que querías darle formato a los links >> http://www.w3schools.com/css/tryit.asp?filename=trycss_link 

Saludos

PD:  Estuve viendo la ezine pero hay un contacto una cuenta de mail que no es mía y está junto a un correo mío pero no pude editarlo porque no encuentro el botón de guardan supongo que no tengo permisos para eso. ¿este ejemplo se podría aprovechar para la ezine?, es muy sencillo pero no he tenido tiempo de hacer nada aún, me queda que terminar un par de cosas.

PD2: Gracias Roberto no había visto las noticias, las coloqué también en el inicio para que no pasen desapercibidas.

Moisés Vázquez

unread,
Mar 16, 2012, 5:52:05 AM3/16/12
to desarrollad...@googlegroups.com
Hola a todos,

Gracias por la respuesta, voy a intentar explicarme mejor de lo que intento conseguir y no puedo. La idea que tengo es de llamar con un Intent a la aplicación nativa de correo del teléfono, al llamar el Intent le envio el body que quiero que muestre, dentro del body es el body el que tiene contenido HTML, y el propio HTML contiene el CSS, mostrándome en el body del mensaje el HTML correctamente pero el CSS como texto plano. 

El código que estoy utilizando es el siguiente:

     String subject = mail.getMailHead();
    String body = mail.getMailBody();
    if (webResult != null){
    body = body.concat("</p>");
    body = body.concat(webResult);
    }
   
    if ((body != null) && (subject != null))
    sendEmail(this, "text/html", subject, body);

El método sendEmail hace lo siguiente:

       Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        // HTML - text/html
        // Text - plain/text
        emailIntent.setType(typeContent);
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);        
        activity.startActivity(emailIntent);

¿Alguna idea o ayuda? 

Muchas gracias!

Javier Hdez

unread,
Mar 16, 2012, 9:27:46 AM3/16/12
to desarrollad...@googlegroups.com
¿qué tienes en typeContent?

¿esto? "text/html"

Javier Hdez

unread,
Mar 16, 2012, 9:34:12 AM3/16/12
to desarrollad...@googlegroups.com
Bueno leyendo desde el principio tus post, veo que sí le pasas ese tipo, prueba con este a ver, pero de todas formas creo que no es nada de esto:

.setType("message/rfc822")

"Por tanto mi intención es que se pueda reconocer el CSS, ¿No es posible? "

¿En qué ciente mail no se ve el CSS?, en uno de escritorio, en uno web o el del móvil Android.

No sé pero me da que no estás permitiendo al ciente mail que muestre el contenido remoto, el estilo se debería de aplicar al mostrar el html ya que está incrustado en el head del html.
Reply all
Reply to author
Forward
0 new messages