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 ha sido creado con el generador de esta misma página Creador de formularios en HTML 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. Para ver mas detalladamente la función mail, ver: Enviar un mail con PHP (Estos campos son iguales a como se explica en este artículo). También recibe un campo "de" que recibe el mail de quién se quiera que aparezca como emisor del mail.

El código de ejemplo, como se ve es muy sencillo:
  1. Crea la cabecera para que aparezca el remitente.
  2. Recorre todos los campos pasados por el formulario ( "foreach ($_POST as $nombre => $valor)" ) y los añade al texto que hemos pasado para el cuerpo.
  3. Envía el mail, retornando el valor de la función.

En el ejemplo de como usarlo, si todo hubiera ido bien, se pintaría "Su formulario ha sido enviado con éxito", por supuesto habría que cambiar los campos pasados, por los que queramos, por ejemplo "usuario@suweb.com", habría que cambiarlo por la dirección de correo a la que queremos que se envíe.


HTML:
<!--Copyright © McAnam.com (Generador de formularios V. 1.1)-->
<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>

Código:
<?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:\n\n",
                  "tu@tuweb.com"
                 )
        )
        echo "Su formulario ha sido enviado con éxito";

?>

Links relacionados:
Enviar un mail con PHP
Enviar un formulario por correo electrónico con adjuntos
Formulario HTML para enviar archivos al servidor
Creador de formularios en HTML
Formulario de contacto en Flash
Métodos de conexión HTTP
Evento Submit de un formulario al pulsar intro
Validar todos los campos de un formulario
Enviar un mail con el objeto CDONTS NewMail


Para cualquier duda, consulta, sugerencia, opinión, colaboración, etc; no dude en ponerse en contacto con nosotros

Copyright © 2002-2017 [McAnam]. Reservados todos los derechos.
www.mcanam.com