martes, 24 de enero de 2017

Envio de correo gmail con PHPMailer


Necesitamos
- Una cuenta de correo en GMail
- Una cuenta de correo en Hotmail
- Un servidor web,(en este ejemplo utilizaremos appserv en Windows así que realizaremos unos pasos adicionales )
- La librería PHPMailer
- Un editor de texto y conocimientos sobre PHP POO
Comencemos
Como trabajaremos sobre windows, debemos realizar algunos cambios en la configuración de AppServ.
PHPmailer y GMail hacen uso del protocolo SSL (Secure Sockets Layer – capa de conexión segura) para la protección de datos, entonces debemos habilitar este protocolo en appserver. Los pasos son:
1. Detener el servicio  de Apache (Control Server by Service – Apache Stop)
2. Abrir con un editor de texto el archivo php.ini hubicado en c:\ -> windows -> php.ini, buscar la opción:
;extension=php_openssl.dll
eliminar el punto y coma “;” y guardar los cambios.
3. Ahora debes dirigirte a la carpeta donde tienes instalado appserv “c:\AppServ\php5\” y copiar los archivos libeay32.dll y ssleay32.dll para pegarlos en la carpeta “c:\AppServ\Apache2.2\bin”, te pide autorización para sobrescribir los archivos, le dices que si.
4. Para terminar vuelve a levantar el servicio de Apache (Control Server by Service – Apache Start)
Con estos pasos ya tendremos habilitado la opción SSL en nuestro AppServ, para ver que todo está bien puedes dirigirte a la información de php desde el navegador
nuclearmail
Utilizando PHPMailer
Para poder utilizar la librería PHPMailer, descomprime los archivos en c:\AppServ\www\PHPMailer-master\, crea un archivo PHP llamado email.php en esa misma carpeta con cualquier editor de texto.
Utilizando la POO extenderemos la clase PHPMailer de la siguiente forma:
<?php
require 'class.phpmailer.php';
/**
* Clase email que se extiende de PHPMailer
*/
class email  extends PHPMailer{

    //datos de remitente
    var $tu_email = 'remitente@gmail.com';
    var $tu_nombre = 'Osama Bin Laden';
    var $tu_password ='*******';

    /**
 * Constructor de clase
 */
    public function __construct()
    {
      //configuracion general
     $this->IsSMTP(); // protocolo de transferencia de correo
     $this->Host = 'smtp.gmail.com';  // Servidor GMAIL
     $this->Port = 465; //puerto
     $this->SMTPAuth = true; // Habilitar la autenticación SMTP
     $this->Username = $this->tu_email;
     $this->Password = $this->tu_password;
     $this->SMTPSecure = 'ssl';  //habilita la encriptacion SSL
     //remitente
     $this->From = $this->tu_email;
    $this->FromName = $this->tu_nombre;
    }

    /**
 * Metodo encargado del envio del e-mail
 */
    public function enviar( $para, $nombre, $titulo , $contenido)
    {
       $this->AddAddress( $para ,  $nombre );  // Correo y nombre a quien se envia
       $this->WordWrap = 50; // Ajuste de texto
       $this->IsHTML(true); //establece formato HTML para el contenido
       $this->Subject =$titulo;
       $this->Body    =  $contenido; //contenido con etiquetas HTML
       $this->AltBody =  strip_tags($contenido); //Contenido para servidores que no aceptan HTML
       //envio de e-mail y retorno de resultado
       return $this->Send() ;
   }

}//--> fin clase

/* == se emplea la clase email == */

$contenido_html =  '<p>Hola, me llamo <em><strong>jc-mouse</strong></em> y quiero hacer una pregunta. </p>
<p>&iquest;POR QUE QUEREIS MATAR A BIN LADEN, SI &quot;OS<em><strong>AMA</strong></em>&quot; ?</p>
<p><strong>:)</strong></p>';

$email = new email();
if ( $email->enviar( 'destinatario@hotmail.com' , 'Barack Obama' , 'Tengo una pregunta' ,  $contenido_html ) )
   echo 'Mensaje enviado';
else
{
   echo 'El mensaje no se pudo enviar ';
   $email->ErrorInfo;
}

?>
Podemos ver que al inicio de la clase declaramos nuestro correo electrónico, ademas del password y nombre de usuario, en el constructor de clase realizamos las configuraciones básicas y necesarias para conectarnos al servidor SMTP de GMail , tenemos también un método para “enviar” nuestro correo.
Al final implementamos clase email.php indicando el correo de hotmail a quien enviar junto al nombre del destinatario, titulo del mensaje, y contenido.
Ejecuta desde el navegador http:\\localhost\PHPMailer-master\email.php y si no tenemos ningún error, el mensaje será enviado en unos segundos.

No hay comentarios:

Publicar un comentario