En las anteriores partes de este tutorial hemos creado un bonito formulario, con un genial acabado, y un script que nos permite enviar vía AJAX los datos al servidor para que nos lo envíe por e-mail.
Pero estamos enviando los datos a una página vacía (por ahora), post.php. Ahora nos encargaremos de que cada vez que se envíe nos llegue un bonito mensaje a nuestra bandeja de entrada:
Nota: Es necesario que el servidor donde alojes estos ficheros tenga activada la función mail
de PHP. Yo he alojado los ficheros aquí (000webhost.com), y como veis funciona.
Por lo que he leído es posible que te llegue como spam (dependiendo de qué correo usas).
Nota 2: Importantísimo cambiar la primera variable ($receptor) por la dirección a la que quieres que llegue el correo.
<?php
// Aquí el email al que queres recibir el correo
// (en mi caso ecoal95[arroba]gmail[punto]com)
$receptor = "tumail@tudominio.com";
//-------------------------------------------------------------------
// VARIABLES DEL MENSAJE
$mensaje = preg_replace('/\n/','<br>',urldecode($_POST['mensaje']));
$nombre = urldecode($_POST['nombre']);
$email = urldecode($_POST['email']);
$fecha = date('c');
$titulo = "Nuevo mensaje de $nombre desde el formulario de contacto";
// Comprobamos que hay un email váldo y un mensaje
if( ! filter_var($email, FILTER_VALIDATE_EMAIL) || ! isset($_POST['mensaje']) )
die("ERROR");
// El mensaje
$data = "
<html><head>
<title>$titulo</title>
<meta name='viewport' content='width:device-width,initial-scale=1'>
<style>
body{
font-family:Arial,Helvetica,sans-serif;
background: #eee;
color: #333;
}
.mensaje {
width: 100%;
max-width: 650px;
background: #fff;
border: 1px solid #ccc;
margin: 2em auto;
padding: 2em;
} </style>
</head>
<body>
<div class='mensaje'>
<h1>Nuevo mensaje de $nombre</h1>
<p><strong>Fecha:</strong> $fecha</p>
<p><strong>Mensaje:</strong><br>$mensaje</p>
<p><strong>Email:</strong> <a href='mailto:$email'>$email</a></p>
</div>
</body></html>";
$cabeceras = "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=utf-8\r\n";
$cabeceras .= "From: $nombre<$email>\r\n";
$cabeceras .= "To: $receptor";
// Enviamos nuestro email y damos cuenta sy hay algún error
if(mail($receptor, $titulo, $data, $cabeceras))
echo "SUCCESS";
else
echo "ERROR";
?>
Toda la serie: