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?