Enviar email con formato HTML en PHP

16/Sep/2015 PHP 12 Comentarios
programación php

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.

  1. $para = 'nombre@correo.com';

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.

  1. $titulo = 'Enviando email desde PHP';
  2.  
  3. $mensaje = '<html>'.
  4. '<head><title>Email con HTML</title></head>'.
  5. '<body><h1>Email con HTML</h1>'.
  6. 'Esto es un email que se envía en el formato HTML'.
  7. '<hr>'.
  8. 'Enviado por mi programa en PHP'.
  9. '</body>'.
  10. '</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.

  1. $cabeceras = 'MIME-Version: 1.0' . "\r\n";
  2. $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):

  1. $cabeceras .= 'From: Mi Nombre<yo@correo.com>';

Y enviar el email mediante la función mail().

  1. $enviado = mail($para, $titulo, $mensaje, $cabeceras);
  2.  
  3. if ($enviado)
  4. echo 'Email enviado correctamente';
  5. else
  6. echo 'Error en el envío del email';

Con esto ya habremos conseguido enviar email con formato HTML en PHP.

Vídeos sobre PHP


12 comentarios en “Enviar email con formato HTML en PHP”

Víctor Cuervo

Camila Alejandra Ramos

Buenas tardes, quisiera una pequeña asesoría sobre mi buscador y el enviar el mail, la plantilla la descargué y no logro hacer que funcionen.

Víctor Cuervo

William Yaqui

Te agradezco por la infromación, me sirvio mucho felicidades por cierto,
aunque estaba probando con un pequeño aspecto, a la hora de tratar de enviar imagenes por el formulario
pues la imagen no se va junto a la informacion, si hubiese algo para lograr corregir ese pequeño inconveniente y lo lograras compartir seria de gran ayuda, pero en fin te felicito por este sitio con informacion muy util.
saludos…

Víctor Cuervo

Víctor Cuervo

William,

¿Te refieres a añadir imágenes en el email que se envía?

Saludos.

Víctor Cuervo

Yohan Rodriguez Diaz

buenas noches mi gente, quisiera que me ayudaran, soy aprendiz en esta materia, quiero que me ayuden en algo, quiero que el formulario tambien quiero que le llegue a la persona que coloca su correo de contacto, que codigo colocaria.

Víctor Cuervo

Pablo Junior Almonte

Muchas Gracias por el aporte acabas de solucionar uno de mis problemas.

Víctor Cuervo

Víctor Cuervo

Nos alegra mucho escuchar eso Pablo. 😀

Saludos.

Víctor Cuervo

Mauricio Alexis Vega Meza

En caso de querer enviar el correo a varios destinatarios, basta con que la variable destinatario contenga todos los correos separados por punto y coma??

Víctor Cuervo

Víctor Cuervo

Correcto Mauricio, siempre y cuando vayan separados por comas. Puedes ver la documentación de PHP en http://php.net/manual/en/function.mail.php

Saludos.

Víctor Cuervo

isabela

tengo un form html y necesito enviarlo a un correo.. usando php.. he probado muchos codigos php.. y ninguno me funciona.. me pueden ayudar

Víctor Cuervo

Juan

HOla… yo estuve renegando un tiempo… lo pude hacer con la clase phpmailer.
Te dejo el link.. Solo le cambie $mail->SMTPSecure=”ssl”; x $mail->SMTPSecure=”tls”. luego de configura mi xampp obvio…

http://anelatek.com/2016/02/03/enviar-email-con-phpmailer-usando-gmail/

Saludos

Víctor Cuervo

Alejandro

Muy buena web, la encontré haciendo una pregunta en google sobre un código olvidado.

A ver si puedo aprender un poco más acá lo que me falta por reforzar.

Felicidades.

Víctor Cuervo

Víctor Cuervo

Alejandro, espero que puedas aprender mucho con nuestra web y que sigas encontrando cosas útiles.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*