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
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>¿POR QUE QUEREIS MATAR A BIN LADEN, SI "OS<em><strong>AMA</strong></em>" ?</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.