publicidad

miércoles, 17 de abril de 2013

Cómo enviar email con php


Cómo enviar email con php

Hola amigos en esta nueva entrada vamos a ver cómo enviar email con php este es un tema que tenemos que aprender a manejarlo lo más que podamos por lo menos si quieres hacer web y promocionarla, el unico problemita es que tenemos que subir la pagina a un servidor para probar porque este envio de email no funciona en localhost a menos que instalemos un servidor de email y modifiquemos el php.ini.

Al momento de enviar emal con php tenemos que tomar varios puntos en consideración para nuestra aplicación como son, saber validar los campos, saber validar email y todo esto utilizando php aunque en Java Script se puede hacer de una forma mas facil aunque ami por lo general me gusta trabajar mucho mas con php.

Ver ejemplo Como enviar email con php

Si no sabes validar formularios con php entonces te dirigete a nuestro mini-tutorial de validar formulario con php asi mismo si no sabes validar los email tambien puedes entrar a nuestro mini tutorial de validar email con php.

Antes de enviar email con php


Antes de hacer una aplicación para enviar email con php tenemos que corregir que el usuario o el nombre del remitente no este vacío, que el correo sea válido y por supuesto que el usuario envié un mensaje y no un correo en blanco.

Primero voy a colocar el código de nuestra página completa la cual nos enviara el correo que el usuario quiera y luego lo explico paso a paso ojo solo explicare el código PHP porque creo que lo demás es bastante básico para explicarlo en caso de no ser así entonces visita nuestro curso de HTML5 y CSS3.

<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="utf-8" />
 <title>Como enviar email con php</title>
    <style>
 #text{
  border:soild 1px #DEDEDE;
  width:130px;
  margin:5px auto;
  padding:5px;
  }
 #texto{
  text-align:left;
  width:300px;
  }
 textarea{
  border:solid 1px #DEDEDE;
  border-radius:5px;
  width:250px;
  height:70px;
  resize:none;
  padding:5px;
  }
 #mensaje{
  background:#DEDEDE;
  border:solid 1px #DADADA;
  border-radius:5px;
  padding:10px;
  color:red;
  }
 </style>
</head>
<body>
<?php
error_reporting(E_ALL^E_NOTICE);
 if($_POST){
  $mail=$_POST['mail'];
  if($mail==''){
   $mail2='<div id="mensaje">E-Mail vacio</div>';
   }else{
         if(!preg_match("/^(?:[\w\d]+\.?)+@(?:(?:[\w\d]\-?)+\.)+\w{2,4}$/", $mail)){
$mail2='<div id="mensaje">E-Mail no es correcto</div>';
  }elseif(!$_POST['nombre']==''){
if(!$_POST['mensaje']==''){
 mail("ejemplo@hotmail.com",$_POST['nombre'], $_POST['mensaje'], "From:".$_POST['mail']);
 $exito=1;
}else{
$mensaje='<div id="mensaje">Falta el mensaje</div>';
 }
  }else{
 $nombre='<div id="mensaje">Escribe un nombre</div>';
 }  
 }
}
  ?> <div id="texto">
<?php
echo $mail2;
echo $nombre;
echo $mensaje;
if($exito==1){
 echo '<div id="mensaje">Grcias tu mensaje fue enviado...<br /><a href="phpmail.php" title="como crear mi web">Regresar</div>';
 }else{
?>
<form method='post'  action='phpmail.php'>
  Email: <input placeholder="Tu E-Mail..." name='mail' type='text' id="text"><br>
  Nombre: <input placeholder="Tu Nombre..." name='nombre' type='text' id="text">
  <br>
  Mensaje:
  <textarea placeholder="Escribe un mensaje..." name='mensaje'></textarea>
  <br>
  <input type='submit'>
  </form>
    </div>
<?php } ?>
</body>
</html>


Que podemos resaltar aquí? Simplemente el código php que aunque es muy reducido es medio complejo si no conoces la lógica del formulario, porque digo esto bueno porque lo único que hicimos en este código es condicionar el mensaje antes de enviarlo, si el mensaje logra pasar las comprobaciones que le hemos puesto entonces se envía de lo contrario te devolverá un mensaje diciéndote lo que falta.

La primera línea de código php es para que no nos presente ninguna noticia de que hay variables sin declarar.

error_reporting(E_ALL^E_NOTICE);

Luego en la segunda línea de código vamos a comprobar que el botón enviar consulta fue oprimido en caso que si entonces entramos todos los datos a comprobación en caso negativo entonces seguimos mostrando el formulario.

if($_POST)

si el método POST es correcto entonces recuperamos el email y lo guardamos en la variable $mail

$mail=$_POST['mail'];

Luego comprobamos que el mail no esté vacio en caso de estarlo creamos una variable con el nombre de $mail2 y le asignamos un texto el cual vamos a llamar desde nuestro código HTML.

if($mail==''){ $mail2='<div id="mensaje">E-Mail vacio</div>'; }

En caso de que el mail contenga algo entonces seguimos a la siguiente línea de código para comprobar que dicho email es una dirección mail correcta.

else{ if(!preg_match("/^(?:[\w\d]+\.?)+@(?:(?:[\w\d]\-?)+\.)+\w{2,4}$/", $mail)){

En caso que el email no sea valido entonces hacemos lo mismo que hicimos antes creamos una variable y le asignamos un valor el cual vamos a imprimir en nuestro documento HTML.

$mail2='<div id="mensaje">E-Mail no es correcto</div>';

Entonces si el email no está vacío y es un email valido entonces pasamos al segundo dato que es el nombre el cual solo vamos a comprobar que contenga algo sea letras o numero en caso de que no contenga nada entonces creamos una variable y le asignamos un valor para imprimirlo en el documento HTML.

Si todos los datos dan positio entonces podemos pasar a enviar el mensaje con la siguiente línea de código

mail("ejemplo@hotmail.com",$_POST['nombre'],$_POST['mensaje'], "From:".$_POST['mail']); $exito=1;

Si te fijas también creamos una variable llamada $exito y le asignamos el valor de 1 esto es para indicarle al código que si ha llegado hasta aquí entonces es porque el mensaje se ha enviado correctamente y le imprimimos el mensaje en el documento al usuario.

Si te fijas la propidad mail(); necesita por lo minimo 4 parametros para enviar un email que son el destino en este caso ejemplo@hotmail.com el nombre del remitente, el mensaje y el sitio o la dirección de correo que ha enviado el mensaje.

Luego del lado arriba del formulario solo imprimimos las variables que creamos dentro del código php.
<?php
echo $mail2;
echo $nombre;
echo $mensaje;
if($exito==1){
 echo '<div id="mensaje">Grcias tu mensaje fue enviado...<br /><a href="phpmail.php" title="como crear mi web">Regresar</div>';
 }else{
?>


Si te fijas en el código anterior hemos dejado una llave abierta y la serramos después que termina el form, esto es para que nuestro formulario se oculte cuando se haya enviado el mensaje.
<?php } ?>

Entonces todo quedaria como esta aqui en este enlace Como enviar email con php

Bueno espero y les haya gustado el mini-tutorial de cómo enviar email con php y si no entienden algo o cualquier consulta aunque no sea de este tema pero que si se trate de programación web entonces para eso déjenme sus comentarios.

Un cordial saludo y hasta la próxima…

2 comentarios:

  1. HOLA ME PARECE MUY INTERESANTE YA QUE HAY POCOS TUTORIALES PARA ENVIAR CORREO A DIFERENTES DESTINATARIOS...GRACIAS

    ResponderEliminar