Inicio » Blog

¿Cómo desarrollar un formulario de contacto simple con PHP?12, Mar

Si somos diseñadores web que estamos empezando en este nuevo mundo  de la codificación y la programación, este tutorial básico de programación para enviar mails a través de un buen formulario de contacto con lenguaje PHP les sera de mucha utilidad, ya que contiene un código simple y limpio, echemos un vistazo!

 

Para empezar debemos definir que para que ocurra la gestión y acción del  envio de un mail dentro de un formulario de contacto, debemos tener claro que debe estar hecha en php para su validadcion, envio, etc. Por ende crearemos un ejemplo al que le llamaremos formulario.php

En la página formulario.php se muestra un formulario con los siguientes datos:
– Nombre
– Email
– Comentarios
– Adjuntar fichero

En otra página (enviar_email.php), se recogen los datos por post.
Se configura el phpmailer con los datos recogidos del formulario.
Enviar mensaje con el fichero adjunto.

Ejemplo:

Página formulario.php

<form action="enviar_email.php" method="post"  enctype="multipart/form-data" name="formulario">
   <label>Nombre</label><br />
   <input type="text" name="nombre" size="40" /><br />
	
   <label>Email</label><br />
   <input type="text" name="email" size="40" /><br />
	
   <label>Comentario</label><br />
   <textarea name="comentario" rows="5" cols="30"></textarea><br />

   <label>Selecciona un fichero</label><br />
   <input name="fichero" type="file" size="40" /><br />
   <br />
   <input name="enviar" type="submit" value="Enviar" /> <!--Si no se pone name no funciona, 
                                        porque el input para el fichero no lo reconoce como name -->
</form>


Para que se pueda enviar el mail, crearemos un ejemplo al que llamaremos enviar_email.php

Ejemplo:

Página enviar_email.php

<?php
   
// ----------------------------- DATOS DE SMTP Y CUENTA DE ENVÍO -------------------------------

  // primero hay que incluir la clase phpmailer para poder instanciar
  //un objeto de la misma
  require ("includes/class.phpmailer.php");

  //instanciamos un objeto de la clase phpmailer al que llamamos 
  //por ejemplo mail
  $mail=new phpmailer();

  //Definimos las propiedades y llamamos a los métodos 
  //correspondientes del objeto mail

  //Con PluginDir le indicamos a la clase phpmailer donde se 
  //encuentra la clase smtp que como he comentado al principio de 
  //este ejemplo va a estar en el subdirectorio includes
  $mail->PluginDir = "includes/";

  //Con la propiedad Mailer le indicamos que vamos a usar un 
  //servidor smtp
  $mail->Mailer = "smtp";

  //Asignamos a Host el nombre de nuestro servidor smtp
  $mail->Host = "smtp.areafor.com";

  //Le indicamos que el servidor smtp requiere autenticación
  $mail->SMTPAuth = true;

  //Le decimos cual es nuestro nombre de usuario y password
  $mail->Username = "area0106@areafor.com"; 
  $mail->Password = "unouno";

  //Indicamos cual es nuestra dirección de correo y el nombre que 
  //queremos que vea el usuario que lee nuestro correo
  $mail->From = "area1006@areafor.com";
  $mail->FromName = "AREA 10";

  //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar 
  //una cuenta gratuita, por tanto lo pongo a 30  
  $mail->Timeout=30;

// ----------------------------- DATOS DEL MENSAJE -------------------------------

  //Indicamos cual es la dirección de destino del correo
  $mail->AddAddress($_POST['email'], $_POST['nombre']);

  //Asignamos asunto y cuerpo del mensaje
  //El cuerpo del mensaje lo ponemos en formato html, haciendo 
  //que se vea en negrita
  $mail->Subject = "Prueba de PHPMailer";
  $mail->Body = $_POST['comentario'];

  //Definimos AltBody por si el destinatario del correo no admite email con formato html 
  $mail->AltBody = "Hola". $_POST['nombre'];
  
  //Decimos que el email va a ser tipo HTML
  $mail->IsHTML(true); 

 // ------------------------- DATOS DEL FICHERO ----------------------------------

  if ($_FILES['fichero']) {
		$mail->AddAttachment($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name']);
   } 

  //se envia el mensaje, si no ha habido problemas 
  //la variable $exito tendra el valor true

  if ($mail->Send()) {
  	echo "Envío correcto";
  }else {
  	echo "Error".$mail->ErrorInfo;  // La propiedad errorinfo contiene el error
  }
   
?>

Con este tutorial, le será mucho mas fácil programar un formulario de contacto  para que éste pueda enviar mails a sus correos corporativos sin problemas, ya que es un código simple y limpio, ahora si necesitan darle formas colores y otros atributos estéticos, deben crear un archivo .css, con este adjuntado a tu php, podrás tener un formulario estético mas atractivo, no olvides siempre hacer tus proyectos siempre funcionales, ya que lo estético viene como consecuencia de todo lo desarrollado

Para subir tus sitios web de manera rápida y estable, debes tener un buen plan de hosting, y es por eso que en benzahosting.cl, nuestra empres de datacenter, tenemos todo lo que buscas, tenemos Promociones+registro de dominios.CL,.COM,.NET,.ORG, Web hosting, Hosting Multidominios, Hosting Reseller, VPS, Servidores Dedicados, Certificados SSl+IP Dedicada, Cloud Systems, Back Ups Corporativos, etc,

visítanos en: http://www.benzahosting.cl

Comentarios

Opina con nosotros