Enviar un Formulario por Correo Electrónico

Este artículo habla de como enviar un formulario a una dirección de e-mail. Esto es de lo más sencillo que se puede hacer con PHP, aunque bastante recurrente y a los principiantes les puede servir para ir entendiendo como funcionan los lenguajes de servidor.

El formulario es un formulario básico y se le pueden añadir los campos que se desee, ya que la aplicación recogerá todas las variables pasadas por el método “post” y las enviará por el mail, por lo que el método (method) del formulario debe ser “post” y el “action” debe ir a la página PHP que contenga la función.

la función recibe los campos “para”, “asunto” y “texto”, y los envía con el mail, pasando los campos “para” y “asunto” tal cual y añadiendo al campo “texto” los datos del formulario. También recibe un campo “de” que recibe el mail de quién se quiera que aparezca como emisor del mail.

<!–)–>

<html>

<head>

<title>Rellene el formulario</title>

</head>

<body>

<form name=’formulario’ id=’formulario’ method=’post’ action=’pagina_mail.php’ target=’_self’>

<p>Nombre <input type=’text’ name=’Nombre’ id=’Nombre’></p>

<p>Apellidos <input type=’text’ name=’Apellidos’ id=’Apellidos’></p>

<p>E-mail <input type=’text’ name=’E-mail’ id=’E-mail’></p>

<p><input type=’radio’ value=’Hombre’ name=’Sexo’ id=’Sexo’>Hombre</p>

<p><input type=’radio’ value=’Mujer’ name=’Sexo’ id=’Sexo’>Mujer</p>

<p align=’center’>

<input type=’submit’ value=’Enviar formulario’>

<input type=’reset’ value=’resetear formulario’>

</p>

</form>

</body>

</html>

<?php

//Copyright © McAnam.com

function form_mail($sPara, $sAsunto, $sTexto, $sDe){

if ($sDe)$sDe = “From:”.$sDe;

foreach ($_POST as $nombre => $valor)

$sTexto = $sTexto.”n”.$nombre.” = “.$valor;

return(mail($sPara, $sAsunto, $sTexto, $sDe));

}

//Ejemplo de como usar:

if (form_mail(“usuario@suweb.com”,

“Activación de formulario”,

“Los datos introducidos en el formulario son:nn”,

“tu@tuweb.com”

)

)

echo “Su formulario ha sido enviado con exito”;

?>

Leave A Comment?