martes, julio 24, 2012

Como utilizar phpmailer 5.2.1 con Gmail


phpMailer es una excelente forma para enviar correos electrónicos desde la web, ya sea para enviar una confirmación de registro, un boletin, etc. Esta clase permite enviar correos mediante servidor SMTP, copias ocultas, en formato html, etc.
Antes de comenzar el ejemplo primero debemos descargar la clase:
De la descarga lo que nos interesa para este post son los archivos class.phpmailer.php y class.smtp.php.
En este ejemplo vamos a autenticarnos a una cuenta de correo Gmail y enviar un correo electrónico utilizando esa cuenta, esto también sirve si estas utilizando GoogleApps que en el caso de utilizar tus credenciales de Gmail utilizarías las de GoogleApps sin modificar nada más.




Creamos un nuevo proyecto o carpeta en nuestro servidor, copiamos y pegamos dentro las dos clases antes mencionadas, y creamos un archivo adicional con el siguiente código:
IsSMTP(); // Se especifica a la clase que se utilizará SMTP

try {
//------------------------------------------------------
  $correo_emisor="filth.dani@gmail.com";     //Correo a utilizar para autenticarse
          //Gmail o de GoogleApps
  $nombre_emisor="Dani Filth";               //Nombre de quien envía el correo
  $contrasena="password_from_hell";          //contraseña de tu cuenta en Gmail
  $correo_destino="shagrath@gmail.com";      //Correo de quien recibe
  $nombre_destino="Shagrath";                //Nombre de quien recibe
//--------------------------------------------------------
  $mail->SMTPDebug  = 2;                     // Habilita información SMTP (opcional para pruebas)
                                             // 1 = errores y mensajes
                                             // 2 = solo mensajes
  $mail->SMTPAuth   = true;                  // Habilita la autenticación SMTP
  $mail->SMTPSecure = "ssl";                 // Establece el tipo de seguridad SMTP
  $mail->Host       = "smtp.gmail.com";      // Establece Gmail como el servidor SMTP
  $mail->Port       = 465;                   // Establece el puerto del servidor SMTP de Gmail
  $mail->Username   = $correo_emisor;        // Usuario Gmail
  $mail->Password   = $contrasena;           // Contraseña Gmail
  //A que dirección se puede responder el correo
  $mail->AddReplyTo($correo_emisor, $nombre_emisor);
  //La direccion a donde mandamos el correo
  $mail->AddAddress($correo_destino, $nombre_destino);
  //De parte de quien es el correo
  $mail->SetFrom($correo_emisor, $nombre_emisor);
  //Asunto del correo
  $mail->Subject = 'Prueba de phpMailer en Garabatos Linux';
  //Mensaje alternativo en caso que el destinatario no pueda abrir correos HTML
  $mail->AltBody = 'Hijole para ver el mensaje necesita un cliente de correo compatible con HTML.';
  //El cuerpo del mensaje, puede ser con etiquetas HTML
  $mail->MsgHTML("¿Que otro nombre recibe el área de sol del Estadio Cuscatlán?");
  //Archivos adjuntos
  $mail->AddAttachment('img/logo.jpg');      // Archivos Adjuntos
  //Enviamos el correo
  $mail->Send();
  echo "Mensaje enviado. Que chivo va vos!!";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Errores de PhpMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Errores de cualquier otra cosa.
}
?>
Las distintas zonas horarias las podes encontrar en la documentación de la página oficial de php.
NOTA: Este código puede ser utilizado desde tu servidor local de pruebas, no es necesario que este montado en un hosting público.

No hay comentarios.: