Foros del Web » Programando para Internet » PHP »

mail() con html y css

Estas en el tema de mail() con html y css en el foro de PHP en Foros del Web. hola, estoy intentando hacer un mail plantilla para enviar a varios destinatarios. Estoy utilizando la función de php mail() para enviarlos y hasta ahí todo ...
  #1 (permalink)  
Antiguo 16/11/2011, 06:09
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
mail() con html y css

hola, estoy intentando hacer un mail plantilla para enviar a varios destinatarios.
Estoy utilizando la función de php mail() para enviarlos y hasta ahí todo bien.

El problema es que quiero que sea un correo que no sólo tenga texto sino que tenga también imagen de fondo y una estructura determinada, similar a la que tendría una web y por eso para maquetarlo utilizo html de la siguiente manera

Código PHP:
$mensaje .= '
<html>
<head>
  <title>Recordatorio de cumpleaños para Agosto</title>
  <link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
  <p>¡Estos son los cumpleaños para Agosto!</p>
  <table>
    <tr>
      <th>Quien</th><th>Día</th><th>Mes</th><th>Año</th>
    </tr>
    <tr>
      <td>Joe</td><td>3</td><td>Agosto</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17</td><td>Agosto</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
'

El problema es que quiero darle un diseño concreto y lo tengo en una hoja CSS, he intentado ponerlo en la cabecera del <html> como muestro en el código, pero no funciona.

Me gustaría saber si hay que ponerlo en las $cabeceras del mail() y cómo hay que ponerlo, etc.

Estoy perdidísima
  #2 (permalink)  
Antiguo 16/11/2011, 06:12
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: mail() con html y css

No creo que puedas añadir CSS (no lo he probado, aunq en todo caso tendrías que añadir la ruta completa!).


Lo q estoy seguro, es q la etiqueta style sí funciona :)

En la cabezera tienes q añadir el Content-type: html ;)
Código PHP:
$cabeceras .= "Content-Type: text/html; charset=ISO-8859-1\r\n"//Por ejemplo! 
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 16/11/2011, 06:17
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: mail() con html y css

ok gracias, lo del Content Type ya lo sabía, pero quería saber si hay forma de añadir css.

Lo que quiero es similar a los emails de publicidad como groupalia, juegos multijugador, etc, no creo que eso lo hagan con styles porque son larguísimos, pero bueno si no hay otra cosa lo haré con ello
  #4 (permalink)  
Antiguo 16/11/2011, 06:21
 
Fecha de Ingreso: noviembre-2007
Mensajes: 23
Antigüedad: 16 años, 4 meses
Puntos: 4
Respuesta: mail() con html y css

Para que te funcionase, tendrías que tener el fichero style.css en el propio correo.

En estos casos, lo que deberías hacer es, o usar el atributo "style" como bien ha indicado Eleazan, o utilizar la etiqueta "<style></style>" en el head, escribiendo dentro el código CSS que desees. Te quedaría de la siguiente forma:

Código:
$mensaje .= ' 
<html> 
<head> 
  <title>Recordatorio de cumpleaños para Agosto</title> 
  
  <style>
      #objeto1 {
          color: #000;
      }
      ...
  </style>


</head> 
<body> 
...
  #5 (permalink)  
Antiguo 16/11/2011, 06:34
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: mail() con html y css

os dejo un ejemplo de parte de un email con imágenes, texto, etc. similar a lo que quiero conseguir:
[http://imageshack.us/photo/my-images/811/mailni.jpg/
  #6 (permalink)  
Antiguo 16/11/2011, 07:09
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: mail() con html y css

lo he intentado con el style y en gmail sí se ve, pero en hotmail no. No sé si porque no lo soporta o por otros problemas, el caso es que yo los tipos de email que quiero se ven en todos los servidores de correo...
En realidad sólo me ocurre en algunos casos, porque el color de la letra sí lo cambia en todos los correos, pero por ejemplo el color de fondo sólo lo cambia en gmail y no en hotmail

Última edición por educacanis; 16/11/2011 a las 07:16
  #7 (permalink)  
Antiguo 16/11/2011, 08:17
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: mail() con html y css

no se recomienda utilizar CSS para los emails debido a que muchos clientes de correo no lo soportan, lo ideal es usar HTML y etiquetas ya obsoletas como <font>
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 16/11/2011, 09:07
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: mail() con html y css

Seguro que así no se soluciona, pero por lo menos he conseguido que funcione tanto en hotmail como en gmail y en el email del móvil.
En cada sitio funciona una cosa, así que hay que ponerlo todo.
En gmail y en otros correos funcione el style dentro de las etiquetas html como habéis dicho. Ésto NO funciona en hotmail.
Sin embargo en hotmail lo que funciona es definir los estilos en la cabecera del html. Ésto NO funciona en gmail y otros correos.

De todas formas espero que esta solución sea opcional. si alguien tiene otra, se lo agradeceré.
  #9 (permalink)  
Antiguo 16/11/2011, 10:11
 
Fecha de Ingreso: noviembre-2007
Mensajes: 23
Antigüedad: 16 años, 4 meses
Puntos: 4
Respuesta: mail() con html y css

El tema de los correos es algo bastante complicado. Si te fijas, muchos de los boletines son tablas con celdas, e imágenes dentro de cada celda, que en conjunto forman una sola imagen. Ni texto ni nada, sólo la imagen formada a partir de varias, como un puzzle. Se ve que será la mejor forma de conseguir compatibilidad con todos los clientes.
  #10 (permalink)  
Antiguo 17/11/2011, 06:05
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: mail() con html y css

Es cierto la mejor forma es utilizar tablas, dentro de otras y con las etiquetas html, vamos como diseñar una página web a la antigua

Etiquetas: css, html, mail
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:28.