Cansado de enviar emails sin diseño, que pasan desapercibidos o no se ven correctamente? En el artículo de hoy vamos a encargarnos de conocer cómo enviar emails HTML con PHP, formateados para que luzcan bonitos.
PHP usa la función mail() que puede ser usada con HTML para enviar un correo desde el backend con los datos que queramos.
mail($to, $subject, $message, $headers);
El ultimo parámetro, los titulares ($headers), son opcionales para la función pero se requieren para mandar un e-mail HTML; porque esto es lo que permite mandar una declaración de tipo de contenido que le informa al cliente (de correo electrónico) que debe analizar el e-mail como HTML.
De hecho, los titulares nos están dando la oportunidad de llevar a cabo una gran cantidad de funciones de e-mail importantes. Aquí es dónde podemos setear las propiedades From y Reply To, como así también CC y BCC a otros receptores. Este es el código que debemos utilizar:
PLAIN TEXT
$to = '[email protected]';
$subject = 'Asunto del email';
$headers = "From: " . strip_tags($_POST['req-email']) . "rn";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "rn";
$headers .= "CC: [email protected]";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=ISO-8859-1rn";
Ahora podemos utilizar etiquetas HTML
El parámetro mensaje (un gran string que pasamos a la función mail con el cuerpo de nuestro mensaje), ahora puede tener etiquetas HTML. Por ejemplo:
PLAIN TEXT
$message = '<html><body>';
$message .= '<h1>Hola, mundo!</h1>';
$message .= '</body></html>';
Aquí les dejo un ejemplo para incluir una tabla con datos:
PLAIN TEXT
$message = '<html><body>';
$message .= '<img src="http://tudominio.com/images/logo.png" alt="Logotipo" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Nombre:</strong> </td><td>" . strip_tags($_POST['req-name']) . "</td></tr>";
$message .= "<tr><td><strong>Email:</strong> </td><td>" . strip_tags($_POST['req-email']) . "</td></tr>";
$message .= "<tr><td><strong>Opcion:</strong> </td><td>" . strip_tags($_POST['typeOfChange']) . "</td></tr>";
$message .= "<tr><td><strong>Urgencia:</strong> </td><td>" . strip_tags($_POST['urgency']) . "</td></tr>";
$message .= "<tr><td><strong>URL:</strong> </td><td>" . $_POST['URL-main'] . "</td></tr>";
$addURLS = $_POST['addURLS'];
if (($addURLS) != '') {
$message .= "<tr><td><strong>URL (adicional):</strong> </td><td>" . strip_tags($addURLS) . "</td></tr>";
}
$curText = htmlentities($_POST['curText']);
if (($curText) != '') {
$message .= "<tr><td><strong>Contenido actual:</strong> </td><td>" . $curText . "</td></tr>";
}
$message .= "<tr><td><strong>Nuevo contenido:</strong> </td><td>" . htmlentities($_POST['newText']) . "</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
Esto luce mucho más bonito. ¿Verdad?
A tener en cuenta
Algunas personas simplemente odian por completo el correo electrónico HTML. Por un lado, puede ser un riesgo de seguridad ya que es posible ejecutar JavaScript en ellos, en algunos clientes de correo electrónico, lo cual puede ser problemático. Además, los correos electrónicos HTML también tienen la costumbre de ser más fácilmente enviados a la carpeta de Spam. Pero creo que es una preocupación menor aquí como este correo electrónico es esencialmente creado por tí y para tí.
En CSS-Tricks encontrarán una demo y podrán descargar los archivos utilizados en el ejemplo
fuente:webmaster.com
PHP usa la función mail() que puede ser usada con HTML para enviar un correo desde el backend con los datos que queramos.
mail($to, $subject, $message, $headers);
El ultimo parámetro, los titulares ($headers), son opcionales para la función pero se requieren para mandar un e-mail HTML; porque esto es lo que permite mandar una declaración de tipo de contenido que le informa al cliente (de correo electrónico) que debe analizar el e-mail como HTML.
De hecho, los titulares nos están dando la oportunidad de llevar a cabo una gran cantidad de funciones de e-mail importantes. Aquí es dónde podemos setear las propiedades From y Reply To, como así también CC y BCC a otros receptores. Este es el código que debemos utilizar:
PLAIN TEXT
$to = '[email protected]';
$subject = 'Asunto del email';
$headers = "From: " . strip_tags($_POST['req-email']) . "rn";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "rn";
$headers .= "CC: [email protected]";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=ISO-8859-1rn";
Ahora podemos utilizar etiquetas HTML
El parámetro mensaje (un gran string que pasamos a la función mail con el cuerpo de nuestro mensaje), ahora puede tener etiquetas HTML. Por ejemplo:
PLAIN TEXT
$message = '<html><body>';
$message .= '<h1>Hola, mundo!</h1>';
$message .= '</body></html>';
Aquí les dejo un ejemplo para incluir una tabla con datos:
PLAIN TEXT
$message = '<html><body>';
$message .= '<img src="http://tudominio.com/images/logo.png" alt="Logotipo" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Nombre:</strong> </td><td>" . strip_tags($_POST['req-name']) . "</td></tr>";
$message .= "<tr><td><strong>Email:</strong> </td><td>" . strip_tags($_POST['req-email']) . "</td></tr>";
$message .= "<tr><td><strong>Opcion:</strong> </td><td>" . strip_tags($_POST['typeOfChange']) . "</td></tr>";
$message .= "<tr><td><strong>Urgencia:</strong> </td><td>" . strip_tags($_POST['urgency']) . "</td></tr>";
$message .= "<tr><td><strong>URL:</strong> </td><td>" . $_POST['URL-main'] . "</td></tr>";
$addURLS = $_POST['addURLS'];
if (($addURLS) != '') {
$message .= "<tr><td><strong>URL (adicional):</strong> </td><td>" . strip_tags($addURLS) . "</td></tr>";
}
$curText = htmlentities($_POST['curText']);
if (($curText) != '') {
$message .= "<tr><td><strong>Contenido actual:</strong> </td><td>" . $curText . "</td></tr>";
}
$message .= "<tr><td><strong>Nuevo contenido:</strong> </td><td>" . htmlentities($_POST['newText']) . "</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
Esto luce mucho más bonito. ¿Verdad?
A tener en cuenta
Algunas personas simplemente odian por completo el correo electrónico HTML. Por un lado, puede ser un riesgo de seguridad ya que es posible ejecutar JavaScript en ellos, en algunos clientes de correo electrónico, lo cual puede ser problemático. Además, los correos electrónicos HTML también tienen la costumbre de ser más fácilmente enviados a la carpeta de Spam. Pero creo que es una preocupación menor aquí como este correo electrónico es esencialmente creado por tí y para tí.
En CSS-Tricks encontrarán una demo y podrán descargar los archivos utilizados en el ejemplo
fuente:webmaster.com