Esta será una continuación de la demostración del formulario de solicitud de cambio de sitio web que hemos estado usando aquí por un tiempo. Si necesita ponerse al día, primero hablé de ello, luego lo construí, luego lo proyecté en pantalla y luego lo aseguré. A lo largo de todo esto, el resultado final ha sido un aburrido correo electrónico de solo texto que se envía a una única dirección de correo electrónico.
Vamos a mejorar ese resultado y convertir el correo electrónico en un correo electrónico con formato HTML de mejor apariencia.
No es muy diferente al correo electrónico de texto
El envío de correo electrónico HTML a través de PHP utiliza exactamente la misma función de correo que el correo electrónico de texto:
mail($to, $subject, $message, $headers);
El último parámetro, los encabezados, son opcionales para la función pero necesarios para enviar correo electrónico HTML, ya que aquí es donde podemos pasar la declaración de tipo de contenido que indica a los clientes de correo electrónico que analicen el correo electrónico como HTML.
De hecho, el área de encabezados nos brinda la oportunidad de realizar muchas funciones importantes de correo electrónico. Aquí es donde podemos establecer las configuraciones De: y Responder a: si es necesario, así como CC y CCO para otros destinatarios (¡Oye, una casilla de verificación para enviar CC a ti mismo sería una característica genial para agregar!). Aquí está el código utilizado para el formulario de solicitud de cambio de sitio web HTML-Sendin ‘nuevo y mejorado:
$to = '[email protected]';
$subject="Website Change Request";
$headers = "From: " . strip_tags($_POST['req-email']) . "rn";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "rn";
$headers .= "CC: [email protected]rn";
$headers .= "MIME-Version: 1.0rn";
$headers .= "Content-Type: text/html; charset=ISO-8859-1rn";
Ahora podemos usar etiquetas HTML
El parámetro de mensaje (una cadena grande que pasamos a la función de correo con el cuerpo de nuestro correo electrónico), ahora puede tener etiquetas HTML. Por ejemplo:
$message="<html><body>";
$message .= '<h1>Hello, World!</h1>';
$message .= '</body></html>';
Aquí está todo el asunto, para crear la tabla de datos como se muestra arriba:
$message="<html><body>";
$message .= '<img src="https://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style="background: #eee;"><td><strong>Name:</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>Type of Change:</strong> </td><td>" . strip_tags($_POST['typeOfChange']) . "</td></tr>";
$message .= "<tr><td><strong>Urgency:</strong> </td><td>" . strip_tags($_POST['urgency']) . "</td></tr>";
$message .= "<tr><td><strong>URL To Change (main):</strong> </td><td>" . $_POST['URL-main'] . "</td></tr>";
$addURLS = $_POST['addURLS'];
if (($addURLS) != '') {
$message .= "<tr><td><strong>URL To Change (additional):</strong> </td><td>" . strip_tags($addURLS) . "</td></tr>";
}
$curText = htmlentities($_POST['curText']);
if (($curText) != '') {
$message .= "<tr><td><strong>CURRENT Content:</strong> </td><td>" . $curText . "</td></tr>";
}
$message .= "<tr><td><strong>NEW Content:</strong> </td><td>" . htmlentities($_POST['newText']) . "</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
Creo que se ve MUCHO mejor. Y dado que este correo electrónico (teóricamente) llega directamente a usted, ¿no es bueno saber que estará formateado para que sea agradable a la vista?
Preocupaciones
Algunas personas odian absolutamente el correo electrónico HTML. Por un lado, puede ser un riesgo para la seguridad, ya que es posible ejecutar JavaScript en algunos clientes de correo electrónico, lo que puede ser problemático. Los correos electrónicos HTML también tienen la costumbre de quedar atrapados más fácilmente en los filtros de correo no deseado. Creo que aquí es menos preocupante, ya que este correo electrónico lo está creando esencialmente PARA usted.
Manifestación
Actualicé la demostración y la descargué para usar el nuevo formato de correo electrónico HTML.
Ver demostración Descargar archivos
Es probable que haya una o dos demostraciones más en este formulario por venir. Al menos me gustaría hacer uno para escribir los datos en una base de datos antes de enviar el correo electrónico. El correo electrónico puede ser algo tan frágil que, sin duda, guardar los datos en una base de datos es una decisión inteligente.