Cómo enviar un formulario por e-mail usando PHP Junio 2014 Cuando estamos trabajando en un sitio web, muchas veces existe la necesidad de proveer al usuario con un formulario de contacto para hacernos llegar sus consultas, comentarios u otro tipo de información. En este truco te mostramos un ejemplo de cómo hacer un formulario usando HTML para crearlo y PHP para procesarlo y enviarlo por e-mail. El formulario El script PHP El formulario Se trata de un fragmento de código HTML que usando el TAG <form> nos permite crear el formulario de entrada de datos a ser completado por el usuario: formulario.html <form name="frmContacto" method="post" action="sendbymail.php"> <table width="500px"> <tr> <td> <label for="first_name">Nombre: *</label> </td> <td> <input type="text" name="first_name" maxlength="50" size="25"> </td> </tr> <tr> <td valign="top""> <label for="last_name">Apellido: *</label> </td> <td> <input type="text" name="last_name" maxlength="50" size="25"> </td> </tr> <tr> <td> <label for="email">Dirección de E-mail: *</label> </td> <td> <input type="text" name="email" maxlength="80" size="35"> </td> </tr> <tr> <td> <label for="telephone">Número de teléfono:</label> </td> <td> <input type="text" name="telephone" maxlength="25" size="15"> </td> </tr> <tr> <td> <label for="comments">Comentarios: *</label> </td> <td> <textarea name="comments" maxlength="500" cols="30" rows="5"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:right"> <input type="submit" value="Enviar"> </td> </tr> </table> </form> El script PHP La otra parte de código a escribir será entonces la encargada de tomar los datos del formulario anterior, validarlos y si todo está bien, enviar el formulario por correo electrónico a una dirección de destino determinada en el código. Veamos este ejemplo: sendbymail.php <?php if(isset($_POST['email'])) { // Debes editar las próximas dos líneas de código de acuerdo con tus preferencias $email_to = "destinatario@sudominio.com"; $email_subject = "Contacto desde el sitio web"; // Aquí se deberían validar los datos ingresados por el usuario if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['comments'])) { echo "<b>Ocurrió un error y el formulario no ha sido enviado. </b><br />"; echo "Por favor, vuelva atrás y verifique la información ingresada<br />"; die(); } $email_message = "Detalles del formulario de contacto:\n\n"; $email_message .= "Nombre: " . $_POST['first_name'] . "\n"; $email_message .= "Apellido: " . $_POST['last_name'] . "\n"; $email_message .= "E-mail: " . $_POST['email'] . "\n"; $email_message .= "Teléfono: " . $_POST['telephone'] . "\n"; $email_message .= "Comentarios: " . $_POST['comments'] . "\n\n"; // Ahora se envía el e-mail usando la función mail() de PHP $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); echo "¡El formulario se ha enviado con éxito!"; } ?> Este documento intitulado « Cómo enviar un formulario por e-mail usando PHP » de Kioskea (es.kioskea.net) esta puesto a diposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible.