En anteriores ejemplos hemos visto como podíamos enviar un email en PHP y cómo podíamos añadir un destinatario diferente para la respuesta. Si bien, en ambos casos, el email enviado era un email en formato texto. En este ejemplo vamos a ver cómo podemos enviar email con formato HTML en PHP.
Al enviar email con formato HTML en PHP podremos incrementar las posibilidades de visualización del mismo en los clientes de correo de nuestros destinatarios. Así podremos insertar imágenes, tablas, formularios,…
Lo primero será configurar el destinatario del correo.
$para = '[email protected]';
Después definiremos una variable para el título y otra para el contenido. En este caso el texto que insertemos en el contenido ya será puro HTML.
$titulo = 'Enviando email desde PHP';
$mensaje = '<html>'.
'<head><title>Email con HTML</title></head>'.
'<body><h1>Email con HTML</h1>'.
'Esto es un email que se envía en el formato HTML'.
'<hr>'.
'Enviado por mi programa en PHP'.
'</body>'.
'</html>';
Podemos utilizar cualquier elemento HTML que queramos e incluso podemos añadir contenido CSS. Si bien hay que tener en cuenta que algunos clientes de correo son muy limitados a la hora de visualizar el contenido de los emails. Es por ello que no es muy recomendable abusar de las características, sobre todo de las de CSS.
Esto no será suficiente para poder enviar email con formato HTML en HTML. Todavía tenemos que hacer otra cosa, esta será añadir unas cabeceras en la cuales digamos que el contenido que estamos enviando es un contenido HTML.
Estas cabeceras indican que el MIME-Version es el 1.0, que el content-type es "text/html"
y que el charset de codificación es "utf-8"
u otro que quieras utilizar.
$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/html; charset=utf-8' . "\r\n";
Importante no olvidar que las cabeceras están separadas por líneas mediante un código CRLF (\r\n).
Ya solo nos quedará añadir la cabecera para indicarle quienes somos (los que enviamos el email):
$cabeceras .= 'From: Mi Nombre';
Y enviar el email mediante la función mail().
$enviado = mail($para, $titulo, $mensaje, $cabeceras);
if ($enviado)
echo 'Email enviado correctamente';
else
echo 'Error en el envío del email';
Con esto ya habremos conseguido enviar email con formato HTML en PHP.