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:

7 pensamientos en “Creando un formulario de contacto con PHP y Javascript [5]: el PHP

  1. Imagen de LeonardoLeonardo el dijo:

    Hola amigo, muchas gracias por compartir tu conocimiento, mira he usado parte de tu codigo, y envia el mensaje, el único problema que tengo es que al estar enviado el correo no me muestra sale el mensaje de enviado satisfactoriamente, en lugar aparece success, reviso y todo parece estar bn……

  2. Imagen de AntonitoAntonito el dijo:

    Oye… muchas gracias :) no hagas caso lo de 6 partes, es el mejor articulo para novatos como yo para crear un formulario, muchas gracias :)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Puedes usar las siguientes etiquetas y atributos HTML:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre data-language=""> <ul> <ol> <li>
Para poner código usa <pre data-language="[lenguaje]"><code>[código]</code></pre>, y no olvides escapar el HTMl.