Formulario de Contacto enviar mail con PHP
Tutorial Photoshop
Tutorial por Jorge Oyhenard (elQuique)
SoloPhotoshop
Envio de Formulario de Contacto con PHP
Creación de Código PHP para enviar E-Mail de Contacto
por elQuique de Foro Creativo y Taller Webmaster
Este tutorial es un complemento, que servira para enviar un formulario creado en Macromedia Flash, así como uno en HTML, creado con Dreamweaver u otro editor.
En el caso de un Formulario en Flash, tomamos como referencia el creado por JMX, en nuestro otro sitio www.solophotoshop.com. Este es el resultado de ese tutorial:
La explicación de como crear ese formulario de contacto en Flash, puedes verla acá:
http://www.solophotoshop.com/Tutorial-Formulario-de-Contacto-con-Flash-c-266.html
Pero este código PHP, también servira para un Formulario de Contacto, creado en HTML convencional, en ese caso tomaremos como referencia el que creamos en nuestro anterior tutorial:
Cuya explicación para crearlo puedes verla acá:
http://www.tallerwebmaster.com/Tutorial-Crear-Formulario-de-Contacto-con-Dreamweaver-c-42.html
Cualquiera de los dos formularios en Flash o Dreamweaver, llaman a un archivo send.php, este archivo es el que se encarga de tomar los datos y los envía por E-Mail.
El código PHP, necesario para esto, se compone básicamente de las siguientes partes:
- Obtener la información del formulario
- Preparar el texto del mensaje
- Definir la cabecera del e-mail
- Enviar el e-mail
En PHP, podemos obtener la información que nos envía otra pagina mediante POST, que es un sistema de envio de datos. La orden que utilizamos para obtener la información se llama $_POST.
Tal como se comenta al crear el Formulario Flash o HTML, cada campo tiene un nombre que lo identifica. Los campos son: nombre, empresa, mail, mensaje
El código completo de este archivo send.php es el siguiente:
$nombre = $_POST['nombre'];
$mail = $_POST['mail'];
$empresa = $_POST['empresa'];
$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$mensaje = "Este mensaje fue enviado por " . $nombre . ", de la empresa " . $empresa . " \r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());
$para = 'info@tusitio.com';
$asunto = 'Contacto desde Taller Webmaster';
mail($para, $asunto, utf8_decode($mensaje), $header);
echo '&estatus=ok&';
?>
Como dijimos, por medio de $_POST, obtenemos los datos enviados desde el formulario, estos datos se guardan en variables, que son posiciones de memoria que mantendrán la información mientras la procesamos. Es así entonces que tomamos el campo $_POST['nombre'] en la variable $nombre, y lo mismo con $mail y $empresa con los respectivos campos $_POST['mail'] y $_POST['empresa'].
Todo e-mail, es conveniente que tenga una cabecera con los datos mínimos para identificar, quien lo envía, el programa que lo genero, el formato de los datos del e-mail, etc. Esto es lo que generamos en las siguientes 4 líneas de nuestro código, o sea la Cabecera del e-mail., que la guardamos en la variable $header.
La primer línea arma el remitente, para esto se escribirá From: emailremitente@servidor.com que obviamente no es ese que menciono, esto es solo un ejemplo y si prestamos atención lo que dice el código es: From: $mail, esto significa que $mail, como es una variable tomara ahí el e-mail. ingresado en nuestro formulario.
La sigueinte línea X-Mailer, indica el programa usado para envía este e-mail., siempre usen lo mismo tal como esta ahí, cuando usen lenguaje PHP. Las líneas 3 y 4 indican el formato del e-mail., esas también usenlas iguales copien eso directamente.
Deben notar que al final de cada línea hay un " \r\n", esto indica un Salto de Línea, es simplemente para que lo que viene luego de ese código siga en el renglón de abajo.
Bien, la parte mas importante de este ejemplo es la del mensaje mismo, y es lo que sigue y se forma en la variable $mensaje, ahí se escribe un texto que suma el contenido de $nombre y $empresa, para armar una frase coherente tipo así: "Este mensaje fue enviado por José Pérez, de la empresa Empresa S.A." y salta a la siguiente línea y abajo escribe: "Su e-mail es: joseperez@susitio.com", salta un renglón y abajo escribe: "Mensaje: todo el texto que ingresamos del mensaje", completando eso, abajo del renglón, con la fecha de envio.
Las siguientes líneas son el destinatario, que se almacena en la variable $para y el asunto que se guarda en la variable $asunto. Estos dos renglones ustedes pueden personalizarlos a gusto según el caso.
Por ultimo se ejecuta la orden PHP, que permite el envio del mensaje, esta orden se llama mail y se le debe indicar de esta forma y en este orden:
mail(destinatario, asunto, mensaje, cabecera)
Que como vemos y como tuvimos la precaución de guardar todo en variables, sera muy sencillo hacer la línea tal como esta ahí, de la siguiente manera:
mail($para, $asunto, utf8_decode($mensaje), $header);
Por ultimo lo que se escribe es un echo "&estatus=ok&", que en el formulario flash se utiliza para saber si el envio fue correcto.
En nuestro ejemplo de Formulario HTML, podemos sustituir eso con un mensaje de éxito tipo: echo "Mensaje enviado correctamente", en lugar de echo "&estatus=ok&"
Comentarios de Formulario de Contacto enviar mail con PHP
↑ Tutorial
minos_cr
2006-12-08 23:14
He hecho 100 mil pruebas y siemrpe llegan los mensajes.
Muchisimas gracias.
Buenisimo el scrip
spencer_graphics
2007-02-11 20:43
y copie el codigo php
pero ni tan siquera se donde va, en un archivo aparte
o dentro del html por que el tuto no lo explica
es muy buen tuto pero no lo competo mi email es spencer_graphics@yahoo.com.mx (minos-cr help me please)
ya hice algunas pruebas pero no pasa nada
andcamsal
2007-02-19 17:02
Gracias
joserobertolopez
2007-03-01 20:29