Crear un Formulario de Contacto y Notificación via Email


El formulario de contacto es uno de los elementos mas importantes en un sitio web básico, tienda en linea, blog, entre otros, aquí veremos como crear uno sin sufrir en el intento.

Los elementos o campos de un formulario de contacto son básicos, pero cada quien puede agregar los campos que el necesite.

Los campos esenciales son:

  • Nombre
  • Correo Electronico
  • Mensaje

Adicionalmente podemos agregar otros campos, por ejemplo:

  • Numero de Telefono
  • Pais
  • Ciudad

Entre otros.

En este articulo vamos a ver un formulario bien basico, con 3 campos y un boton de submit.

Código formulario HTML

Lo primero que vamos a necesitar es el código HTML de un formulario y este es el que vamos a usar.

<form method="post" action="contacto.php">
	<p>Nombre: </p>
	<input type="text" name="nombre" required placeholder="Escribe tu Nombre">
	<p>Correo Electronico: </p>
	<input type="text" name="correo" required placeholder="Escribe tu Correo Electronico">
	<p>Mensaje: </p>
	<textarea name="mensaje" required placeholder="Escribe tu Mensaje"></textarea>
	<br>
	<input type="submit" value="Enviar Mensaje">
</form>

Como pueden ver es un formulario sencillo, sin usar ningun codigo html extra ni clases, solo parrafos y los campos.

Es importante notas que en la creacion de la etiqueta form. Pusimos que el metodo va a ser POST y la accion va a ser el archivo contacto.php

El archivo contacto.php va a ser el siguiente archivo, que va a contar con el procesamiento de los datos, para enviar las notificaciones por email.

Las notificaciones por email puede ser una o mas.

  • Notificacion al admisnistrador. Es la notificacion que incluye todos los datos de los campos que se capturan en el formulario, estos para que los reciba el administrador y pueda dar seguimiento a la solicitud.
  • Notificacion al cliente/usuario: Se le notifica al usuario que el mensaje fue enviado, adicionalmente se le pueden enviar informacion extra por email.
  • Otras notificaciones: Se le pueden enviar notificaciones a los subadministradores o colaboradores, adicionalemente, en caso de que en un momento el administrador no pueda antender.

Código contacto.php

El código del archivo contacto.php es el siguiente.

<?php

$to = 'evilnapsis@gmail.com'; // Se envia al adminitrador
$subject = 'Contacto desde Evilnapsis.com'; // Asunto del email
$from = $_POST['correo']; // Correo de la Persona que envia el email
 
// Muy importante asignar las cabeceras para poder enviar correos con formato HTML
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
// Agregamos los datos de la persona que envia el correo
$headers .= 'From: '.$from."\r\n".
    'Reply-To: '.$from."\r\n" .
    'X-Mailer: PHP/' . phpversion();
 
// Mensaje HTML que le va a llegar al administrador.
$message = '<html><body>';
$message .= '<h1 >Has recibido un mensaje de contacto</h1>';
$message .= '<p >Nombre: '.$_POST['nombre'].'</p>';
$message .= '<p >Correo: '.$_POST['correo'].'</p>';
$message .= '<p >Mensaje: '.$_POST['mensaje'].'</p>';
$message .= '<p >Fecha: '.date("Y/m/d h:i:s").'</p>';
$message .= '</body></html>';
 
// Sending email
if(mail($to, $subject, $message, $headers)){
    echo 'Mensaje Enviado.';
} else{
    echo 'Error al enviar mensake.';
}
?>

Es necesario modificar la variable $to para que el correo que se envia se envie a un correo de ustedes.

Nota especial

Para que el envio de correos funcione se debe tener el formulario y el archivo contacto.php en un servidor web, ya que estos tienen instalado un programa SMTP para el envio de correos.

Los correos se envian usando la funcion “mail()” que viene por defecto en PHP.

Envia tus Peticiones

Estamos trabajando en nuevos proyectos y tutoriales que son peticiones de los visitantes, envia si tienes alguna peticion especial, tutorial o consejos y te podremos hacer un articulo con lo que solicites.