Comunidad de diseño web y desarrollo en internet online

Aplicar CSS a un email enviado desde formulario

Citar            
MensajeEscrito el 18 Jul 2008 11:47 am
Muy buenas, a ver si me podéis resolver una duda:

Tengo un formulario en HTML que al darle a 'Enviar' pasa los datos a un php (enviara.php) para recibir un email con los datos de una mudanza.
Quiero conseguir que el email, cuando llegue, no sea solo texto plano, sino que tenga buen aspecto, usando algo de CSS.

El problema es que lo he intentado de 37 mil maneras distintas, y el correo siempre me llega como texto plano, sin ningún estilo aplicado.
Os pongo el código de 'enviara.php' por si me podéis decir donde exactamente debo aplicar los estilos, o que carajo estoy haciendo mal.

Código :

<?php
$provinciaOrigen = $_POST['provinciaOrigen'];
$poblacionOrigen = $_POST['poblacionOrigen'];
$calleOrigen = $_POST['calleOrigen'];
$postalOrigen = $_POST['postalOrigen'];
$vehiculoOrigen = $_POST['vehiculoOrigen'];
$provinciaDestino = $_POST['provinciaDestino'];
$poblacionDestino = $_POST['poblacionDestino'];
$calleDestino = $_POST['calleDestino'];
$postalDestino = $_POST['postalDestino'];
$vehiculoDestino = $_POST['vehiculoDestino'];
$ascensorOrigen = $_POST['ascensorOrigen'];
$ascensorDestino = $_POST['ascensorDestino'];
$enseres = $_POST['enseres'];
$nombre = $_POST['nombre'];
$telefono = $_POST['telefono'];
$correo = $_POST['correo'];
$para = '[email protected]';
$header = 'From: ' . $correo . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/html\r\n";
$mensaje='
<html>
   <head>
      <title>Formulario web mudanzas JVR</title>
      <link href="styles.css" rel="stylesheet" type="text/css">
   </head>
   <body>
      <div>
         <div class=\"contentPasos\">
            <div class=\"headersPresupuesto\" style=\"color:#000000\">Datos del solicitante de presupuesto</div>
            <div class=\"subPresupuesto\">Nombre: <span style=\"color:#000000;\">lalala'.$nombre.'</span></div>
            <div class=\"subPresupuesto\">Tel&eacute;fono: <span style=\"color:#000000;\">'.$telefono.'</span></div>
            <div class=\"subPresupuesto\">E-mail: <span style=\"color:#000000;\">'.$correo.'</span></div>
         </div>
         <div class=\"contentPasos\">
            <div class=\"headersPresupuesto\" style=\"color:#000000;\">Datos de la mudanza</div>
               -------Aqui van dos lineas que no pongo, porque descuadran el post-----------
            </div>
         </div>
         <div class=\"contentPasos\">
            <div class=\"headersPresupuesto\" style=\"color:#000000;\">Relaci&oacute;n de enseres</div>
            <div class=\"subPresupuesto\">Enseres y observaciones: <span style=\"color:#000000;\">'.$enseres.'</span></div>
         </div>
         <div class=\"contentPasos\">
            <div class=\"headersPresupuesto\" style=\"color:#000000;\">Fecha</div>
            <div class=\"subPresupuesto\">Formulario enviado el 
            <span style=\"color:#000000;\">'. date('d/m/Y', time()).'</span></div>
         </div>
      </div>
   </body>
</html>
';
mail($para, 'Presupuesto web Mudanzas JVR',$mensaje,$header);
?>


A todo esto deo decir que soy un noob con PHP, es la primera 'aplicación' que hago, un poco de 'copy paste' y un poco de logica por mi parte.
Agradeceré cualquier ayuda, gracias de antemano.

PD: No hay manera, por más que lo intento, el post siempre se me descuadra... Por lo menos en la vista preliminar. Sorry...

Por elmaxloko

7 de clabLevel



Genero:Masculino  

Valencia - España

firefox
Citar            
MensajeEscrito el 18 Jul 2008 11:49 am

Código :

 <link href="styles.css" rel="stylesheet" type="text/css">

O la otra persona tiene ese archivo o dificil lo vas a tener. Así que o metes todo el css en el propio html o llamas a la hoja de estilos con la ruta absoluta http:...

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 18 Jul 2008 11:58 am
Ahhhh, ok ok! Muchas gracias por la respuesta
Entonces lo correcto sería:

Código :

<link href="http://www.eldominio.com/styles.css" rel="stylesheet" type="text/css">

En vez de:

Código :

<link href="styles.css" rel="stylesheet" type="text/css">


Es eso? Porque lo acabo de probar y tampoco funciona...
La otra solución seria meter el CSS en el HTML, tal cual como si fuera una página normal y corriente...

Me equivoco?

Por elmaxloko

7 de clabLevel



Genero:Masculino  

Valencia - España

firefox
Citar            
MensajeEscrito el 18 Jul 2008 02:07 pm
Si, mete el código directamente

Código :

<head>
<style>
/*aqui tu css*/
</style>
</head>


Tambien tienes que tener en cuenta que muchos clientes de correo evitan los correos html.

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 18 Jul 2008 02:36 pm
Gracias por tus respuestas, de veras agradezco tu aportación, pero sigue sin funcionar...

Ni llamando al CSS con ruta absoluta:

Código :

<link href="http://www.eldominio.com/styles.css" rel="stylesheet" type="text/css">

Ni tampoco poniendo el CSS directamente en el PHP:

Código :

<html>
<head>
<style type="text/css">
<!--
aqui pongo el CSS
-->
</style>
</head>
<body>
...
</body>
</html>

El correo sigue llegando como texto plano, me doy por vencido?
Lo que me comentabas de que algunos clientes de correo evitan el HTML, ¿puedo comprobarlo de alguna manera?
Es posible que me este equivocando en el orden que pongo el PHP y el HTML?

Por elmaxloko

7 de clabLevel



Genero:Masculino  

Valencia - España

firefox
Citar            
MensajeEscrito el 18 Jul 2008 03:25 pm
Haz pruebas a varias cuentas de correo distintas (hotmail, gmail, yahoo, etc)

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 18 Jul 2008 03:50 pm
Nada, no funciona...
La web esta alojada en piensasolutions, espero creer que si acepta el envío HTML por email.
El correo se recibe en una cuenta proporcionada por ellos (vía Outlook), aún así hotmail y yahoo me sigue mostrando el correo con texto plano en varias pruebas que he realizado.

No se que hago mal, creo que será una tontería, pero no se que es. Y tirando de google no puedo encontrar nada que me solucione la papeleta.

Es tan frustrante...

Por elmaxloko

7 de clabLevel



Genero:Masculino  

Valencia - España

firefox
Citar            
MensajeEscrito el 22 Ago 2012 11:24 pm

Por danieltorress

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 23 Ago 2012 03:06 pm

elmaxloko escribió:

Nada, no funciona...
La web esta alojada en piensasolutions, espero creer que si acepta el envío HTML por email.
El correo se recibe en una cuenta proporcionada por ellos (vía Outlook), aún así hotmail y yahoo me sigue mostrando el correo con texto plano en varias pruebas que he realizado.

No se que hago mal, creo que será una tontería, pero no se que es. Y tirando de google no puedo encontrar nada que me solucione la papeleta.

Es tan frustrante...

primero , lo recomendable es que uses, phpmailer, para que no peeles con el formato de envio de emails enriquecidos,
segundo, la mayoria de los servidores de email como (gmail,hotmail ) impiden que se ejecuten o visualizen medios externos, como imagenes,css,javascript esos , por seguridad, las imagenes son visualizadas siempre y cuando el usuario de su concentimiento, para evitar esto siempre se recomienda que el email, use estilos inline osea del tipo

Código :

<h1 style="color:green">titulo</h1>
<p style="font-size:15">holaaa</p>

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.