ProInf.net

Envío de un formulario por correo mediante PHP

Francisco 14-01-07
Formulario por correo

Se trata de enviar un correo electrónico con los datos que ha escrito una persona al rellenar un formulario web.

El código está escrito en lenguaje PHP y sirve para cualquier tipo de formulario web. Se ha intentado que fuese un código lo máximo de sencillo y útil posible.

Para poder utilizar el código PHP hay  que personalizarlo, pero es muy fácil de hacer y no es necesario tener conocimientos de programación para realizar esta tarea.

Formulario HTML de ejemplo

<form name="form1" method="post" action="correo.php">
<table>
<tr>
<th>Nombre:</th>
<td><input name="nombre" type="text" class="campo" id="nombre" size="60"></td>
</tr>
<tr>
<th>Tel&eacute;fono:</th>
<td><input name="telefono" type="text" class="campo" id="telefono" size="60"></td>
</tr>
<tr>
<th>Correo:</th>
<td><input name="correo" type="text" class="campo" id="correo" size="60"></td>
</tr>
<tr>
<th>Tipo de oferta: </th>
<td><input name="oferta" type="radio" value="individual">individual
<br><input name="oferta" type="radio" value="grupo">de grupo </td>
</tr>
<tr>
<th>Opciones:</th>
<td><input name="catalogo" type="checkbox" id="catalogo" value="si">Recibir cat&aacute;logo
<br><input name="informarme" type="checkbox" id="informarme" value="si">Informarme de otras ofertas</td>
</tr>
<tr>
<th>Procedencia:</th>
<td><select name="procedencia" class="campo" id="procedencia">
<option value="-"></option>
<option value="N">Norte</option>
<option value="C">Centro</option>
<option value="S">Sur</option>
<option value="E">Este</option>
<option value="O">Oeste</option>
</select></td>
</tr>
<tr>
<th>Observaciones:</th>
<td><textarea name="observaciones" cols="60" rows="10" class="campo" id="observaciones"></textarea></td>
</tr>
</table>
<p>
<input type="submit" value="Enviar">
<input type="reset" value="Restablecer">
</p>
</form>

Archivo correo.php

Los  términos destacados son los que hay que personalizar para cada caso en particular.

<html>
<head>
<title>Env&iacute;o del formulario</title>
</head>
<body>
<h1>Env&iacute;o del formulario</h1>

<?php
// CONFIGURACION CORREO
$destinatario = "destinatario@jettours.es";
$destinatario_cc = "";
$destinatario_bcc = "";
$asunto = "Formulario de JetTours";
$mensaje = "";
$campos_obligatorios = Array();
$campo_nombre = "nombre"; // Campo del formulario con el nombre del visitante
$campo_correo = "correo"; // Campo del formulario con el correo del visitante
// CONFIGURACION HTML
$enviado_bien = "Su formulario ha sido enviado correctamente";
$enviado_mal = "ERROR: No se pudo enviar";

// RECOGER DATOS
reset ($_POST);
$mensaje .= "<table border=\"1\">";
while (list ($clave, $valor) = each ($_POST)) {
$clave = htmlspecialchars($clave);
$valor = htmlspecialchars(trim($valor));
$mensaje .= "<tr><th>" . $clave . "</th><td>" . $valor . "</td></tr>";
}
$mensaje .= "<tr><th>Fecha petición:</th><td>" . date("d/m/Y H:i:s") . "</td></tr>";
$mensaje .= "</table>";

// VARIABLES INTERNAS
$nombre = $_POST[$campo_nombre];
$correo = $_POST[$campo_correo];
$cabeceras = "MIME-Version: 1.0\r\n"; //para el envío en formato HTML
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
if ($correo != "") {
$cabeceras .= "From: " . $nombre . " <" . $correo . ">\r\n"; // Dirección del remitente
$cabeceras .= "Reply-To: " . $nombre . " <" . $correo . ">\r\n"; // Dirección de respuesta
}
if ($destinatario_cc != "") { $cabeceras .= "Cc: " . $destinatario_cc . "\r\n"; }
if ($destinatario_bcc != "") { $cabeceras .= "Bcc: " . $destinatario_bcc . "\r\n"; }

if (mail($destinatario, $asunto, $mensaje, $cabeceras)) {
echo $enviado_bien;
} else {
echo $enviado_mal;
}
?>
</body>
</html>


Ejemplo de correo que se recibe

Aquí podemos ver cómo sería el correo que recibiriamos cuando alguien rellenase nuestro formulario en la web:

Ejemplo de correo recibido
Compartir

 

Artículos relacionados:

Ir arriba