Enviar correo con un formulario desde PHP
Respondiendo a la inquietud que presentaron en clase mis estudiantes en clase les dejo un pequeño escript que les permitirá enviar información que capturen en un formulario html hacia un correo electrónico (hotmail o gmail).
Para comenzar el script es un php, pero lo trabajaremos de la siguiente manera:
Escribimos el código dentro las etiquetas <body> y </body>. En este caso iniciamos con la creación de una tabla (la tabla aportará orden a nuestro formulario).
<body>
<table width="100%" height="100%" border="0" align="center" cellspacing="0">
<tr>
<td>
<table width="100%" height="100%" border="0" align="center" cellspacing="0">
<tr>
<td>
Luego iniciamos con la etiqueta <form> y la configuramos de la siguiente manera:
<form action="<? $HTTP_POST_VARS ?>" method="post">
Ahora iniciamos php, este código evaluará si el formulario contiene o no datos, en caso que no contenga mostrará el formulario.
<?
if (!$HTTP_POST_VARS){
?>
Escribimos el formulario dentro de otra tabla para que se vea más bonito:
<h1 align="center" class="titulo1">Envíenos un correo</h1>
<table width="542" border="0" align="center">
<tr>
<th width="480" class="Estilo20" scope="row">
<div align="right">
Nombre:
<input name="nombre" type="text" size="40" />
<br />
Email:
<input name="email" type="text" size="40" />
<br />
Asunto:
<input name="asunto" type="text" size="40" />
<br />
Comentarios:
<textarea name="comentario" cols="40" rows="10"></textarea>
<br />
<input name="submit" type="submit" value="Enviar correo" />
</div>
</form>
<div align="center" class="Estilo2"><br />
Los comentarios enviados serán recibidos directamente en mi correo y te responderé en cuanto pueda.</div>
Después del formulario volvemos a abrir php y en este espacio contruimos el cuerpo del correo electrónico usando los datos del formulario:
<?
}
else {
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Correo enviado desde mi sitio web\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Asunto: " . $HTTP_POST_VARS["asunto"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["comentario"] . "\n";
Por ultimo envío el correo doy las gracias y cierro todas las etiquetas que antes había abierto:
mail("limacruzjuancarlos@hotmail.com","Formulario recibido desde mi sitio web",$cuerpo);
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</th>
</tr>
</table>
</td>
</tr>
</table>
</body>
Bien eso es todo, solamente debo aclarar que la función mail() funcionará unicamente en un servidor en línea y no en una de prueba. Como siempre les dejo el código completo para que lo prueben y lo mejoren.
<body>
<table width="100%" height="100%" border="0" align="center" cellspacing="0">
<tr>
<td>
<form action="<? $HTTP_POST_VARS ?>" method="post">
<?
if (!$HTTP_POST_VARS){
?>
<h1 align="center" class="titulo1">Envíenos un correo</h1>
<table width="542" border="0" align="center">
<tr>
<th width="480" class="Estilo20" scope="row">
<form action="libro_vis2.php" method="post">
<div align="right">
Nombre:<input name="nombre" type="text" size="40" />
<br />
Email: <input name="email" type="text" size="40" />
<br />
Asunto:<input name="asunto" type="text" size="40" />
<br />
Comentarios:<textarea name="comentario" cols="40" rows="10"></textarea>
<br />
<input name="submit" type="submit" value="Enviar correo" />
</div>
</form>
<div align="center" class="Estilo2"><br />Los comentarios enviados serán recibidos directamente en mi correo y te responderé en cuanto pueda.</div>
<?
}
else {
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Correo enviado desde mi sitio web\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Asunto: " . $HTTP_POST_VARS["asunto"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["comentario"] . "\n";
//mando el correo...
mail("limacruzjuancarlos@hotmail.com","Formulario recibido desde mi sitio web",$cuerpo);
//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</th>
</tr>
</table>
</td>
</tr>
</table>
</body>
<body>
<table width="100%" height="100%" border="0" align="center" cellspacing="0">
<tr>
<td>
<form action="<? $HTTP_POST_VARS ?>" method="post">
<?
if (!$HTTP_POST_VARS){
?>
<h1 align="center" class="titulo1">Envíenos un correo</h1>
<table width="542" border="0" align="center">
<tr>
<th width="480" class="Estilo20" scope="row">
<form action="libro_vis2.php" method="post">
<div align="right">
Nombre:<input name="nombre" type="text" size="40" />
<br />
Email: <input name="email" type="text" size="40" />
<br />
Asunto:<input name="asunto" type="text" size="40" />
<br />
Comentarios:<textarea name="comentario" cols="40" rows="10"></textarea>
<br />
<input name="submit" type="submit" value="Enviar correo" />
</div>
</form>
<div align="center" class="Estilo2"><br />Los comentarios enviados serán recibidos directamente en mi correo y te responderé en cuanto pueda.</div>
<?
}
else {
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Correo enviado desde mi sitio web\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Asunto: " . $HTTP_POST_VARS["asunto"] . "\n";
$cuerpo .= "Comentarios: " . $HTTP_POST_VARS["comentario"] . "\n";
//mando el correo...
mail("limacruzjuancarlos@hotmail.com","Formulario recibido desde mi sitio web",$cuerpo);
//doy las gracias por el envío
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
}
?>
</th>
</tr>
</table>
</td>
</tr>
</table>
</body>
Aquí un ejemplo del formulario, envíame un comentario.