Taller Webmaster

Tutoriales para Webmasters

Bienvenido a Taller Webmaster, donde encontrarás la mejor información sobre tutoriales y recursos para webmasters!

Ingreso de Usuario

Recuperar contraseña

Registro de Usuario

Publicidad

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:

Formulario de Contacto

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:

< ?php

$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

    minos_cr

    2006-12-08 23:14

    Me ha funcionado excelente.
    He hecho 100 mil pruebas y siemrpe llegan los mensajes.
    Muchisimas gracias.
    Buenisimo el scrip
  • spencer_graphics

    spencer_graphics

    2007-02-11 20:43

    ya hice el codigo html
    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

    andcamsal

    2007-02-19 17:02

    Me pareció muy facil de entender. Tengo ahora es una pregunta. Que código e pudiesemos meter al php para que luego del proceso de enviar los datos (INMEDIATAMENTE POST a donde paprece la nueva ventana "Mensaje Enviado Correctamente" apareciera un botoncito debajo que dijer algo asi como "Continuar" para que al hacer click se volviese a la ventana del formulario pero que este aparezca sin llenar? o en su defecto que se fuera al home de mi página web donde inserte el formulario?
    Gracias
  • joserobertolopez

    joserobertolopez

    2007-03-01 20:29

    Spencer: el codigo php que se muestra lo tienes que colocar en un archiv aparte que debes nombrar "send.php" que es el mismo que debe aparecer en la eyiqueta for del formulario HTML en donde se escriben los datos del mail asi:

    espero te sirva.
    Saludos desde el salvador