Sitios web

Página de envío de email en PHP

Si estás construyendo un sitio web con un diseño personal, seguro que te interesa crear una página de contacto. Para ello necesitas, además del propio diseño, insertar un script, en este caso en PHP, que se ocupe de enviarte un mensaje a tu cuenta de correo electrónico directamente desde la página. Hay múltiples formas de hacerlo. El que te propongo es muy simple. Para estructurar el formulario he utilizado tablas, aunque si lo deseas, puedes definir una hoja de estilo y sustituir las tablas por las etiquetas correspondientes.

Página de envío de email en PHP

En el caso de que el visitante no rellene los campos obligatorios, marcados con un asterisco, surgirá un mensaje, cuando pulse sobre el botón Enviar, indicándole que el formulario esta incompleto. Si todo está bien, al pulsar sobre el botón de envío, se mostrará un mensaje confirmándolo. Para todo el proceso sólo es necesaria una página, que he llamado contacto.php. Si le cambias el nombre, debes hacerlo también en el código.

Incluye el código que viene a continuación en la página de contacto que estás diseñando. Sólo deberás sustituir la dirección de correo que he puesto por la tuya.

<div align="center">
<table width="600" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100%">
<table width="100%" border=1 cellPadding=5 cellSpacing=0 bgcolor="#eeeeee" bordercolor="#C0C0C0">
<tbody>
<tr>
<td width="100%" align="center" vAlign=middle>
 <?php
 if (!$_POST['envio']) {
echo "<form action=\"contacto.php\" method=\"post\" class=\"bodytext\">";
?>
<!--begin Form -->
<table border=0 cellpadding=3 cellspacing=0 bordercolor="#FFFFFF">
<tr>
<td colspan=2 height="20" align="left">
<b>Rellena los campos siguientes</b></td>
</tr>
<tr>
<td height="20" bgcolor="#CCCCCC" align="left">Nombre completo: *</td>
<td height="20" bgcolor="#CCCCCC" align="left">E-mail: *</td>
</tr>
<tr>
<td align="center" height="28">
<INPUT NAME="fullname" TYPE="TEXT" SIZE="30" MAXLENGTH="50"></td>
<td width="50%" align="center" height="28">
<INPUT TYPE="TEXT" MAXLENGTH="50" SIZE="30" NAME="mail"></td>
</tr>
<tr>
<td colspan="2" height="20" bgcolor="#CCCCCC" align="left">Asunto:</td>
</tr>
<tr>
<td colspan="2" align="center" height="28">
<INPUT NAME="asunto" TYPE="TEXT" SIZE="68" MAXLENGTH="68"></td>
</tr>
<tr>
<td colspan="2" height="20" bgcolor="#CCCCCC" align="left">Comentarios:</td>
</tr>
<tr>
<td colspan="2" align="center" height="80">
<TEXTAREA ROWS="5" COLS="64" NAME="bodyl"></TEXTAREA></td>
</tr>
<tr>
<td width="100%" align="CENTER" COLSPAN="2">
<input type="submit" name="envio" value="Enviar" size="20">&nbsp;&nbsp;
<input name="reset" type="reset" value="Limpiar" size="20"></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left">* Campo obligatorio </td>
</tr>
</table>
<!-- End Form -->
<?php
 } else if ($_POST['envio']=="Enviar") {
 $flag=0;
 $flag1=0;
 if ((!$_POST['fullname'])||($_POST['fullname']=="")) {
 echo "<b>No rellenaste el campo Nombre</b>.<br>";
 $flag=1;
 }
 if ((!$_POST['mail']) || ($_POST['mail']=="") ) {
 echo "<b>No rellenaste el campo E-mail</b>.<br>";
 $flag=1;
 $flag1=1;
 }
 if ($flag1==0) {
 if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$_POST['mail'])) {
 echo "<b>Dirección de E-mail no válida</b>.<br>";
 $flag=1;
 }
 }

 if ($flag=="1") {
 echo "<a href=\"contacto.php\">Volver</a>";
 } else {
 $mi_email="info@tudominio.net";
 $titulo_correo="Solicitud de Contacto";
 mail("$mi_email","$titulo_correo","Nombre: ".$_POST['fullname']." \n\n"."Asunto: ".$_POST['asunto']." \n\n"."Comentarios: ".$_POST['bodyl']." \n\n"."Dirección de Correo: ".$_POST['mail'],"From: ".$_POST['mail']);
echo "<br><br>Tu mensaje ha sido enviado.<br>
Gracias por contactar con nosotros.";
 }
}
?>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</div>

Al implementar en la página el código anterior, verás algo similar a lo siguiente:

Formulario correo

Fabriciano González

Amante de la informática y de Internet entre otras muchas pasiones. Leo, descifro, interpreto, combino y escribo. Lo hago para seguir viviendo y disfrutando. Trato de dominar el tiempo para que no me esclavice.

Un comentario

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.