jueves, 21 de febrero de 2013

Envío de emails con PHP y PHPMailer

En ocasiones nuestra web necesita enviar E-mails a los usuarios, bien mediante un Newsletter o porque en la web se ha generado algún tipo de actividad, por ejemplo un usuario ha contestado a otro, y para que se entere queremos enviarle un correo electrónico.

Para ello utilizaremos la función PHPMailer, la cual es disponible con casi cualquier proveedor de servicios, incluido vuestro correo web @tuweb.com

Podemos utilizar muchas de las opciones que hay por internet pero, después de probar unas y otras, he decidido implementar PHPMailer para el envío de E-Mails mediante PHP, ya que otros enviaban los E-Mail pero desgraciadamente acababan en la carpeta de SPAM.

Un dato muy importante es utilizar la última versión de PHPMailer, ya que si utilizas versiones  muy antiguas puede que envíes mails directamente a SPAM, y muy poca gente revisa esa carpeta.

La última versión de PHPMailer la podeis descargar desde este link de Google Code https://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list

<?php

error_reporting(E_STRICT);
require_once('class.phpmailer.php'); // RUTA ACCESO
$mail             = new PHPMailer(true);
$body             = "Esto es un <b>Email</b> de prueba con etiquetas HTML";

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "mail.yourdomain.com"; // SMTP server
$mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
$mail->Port       = 26;                    // set the SMTP port for the GMAIL server
$mail->Username   = "yourname@yourdomain"; // SMTP account username
$mail->Password   = "yourpassword";        // SMTP account password

$mail->SetFrom('name@yourdomain.com', 'Usuario'); //E-mail del emisor

$mail->Subject    = "Titulo de tu Email";

$mail->AltBody    = "Cabecera de tu Mail";
$mail->MsgHTML($body);

$address = "whoto@otherdomain.com";   // E-mail del receptor
$mail->AddAddress($address, "John Doe"); //Nombre del receptor

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}

?>


Lo primero que tendreis que hacer es subir los archivos que os habéis descargado del enlace de arriba a vuestro servidor a la carpeta que queráis:
  • class.phpmailer.php
  • class.pop3.php
  • class.smtp.php
 Es importante la ruta de acceso a estos archivos que se incluye en el código anterior sea la misma, ya que si no encuentra los archivos no podrá ejecutar el Script.

Una vez modifiquéis los textos naranjas del código, ya podéis pegarlo en donde queráis que, cuando se abra ese archivo se envíe el Mail o bien podéis crear un archivo para ejecutarlo mediante Cronjobs

No hay comentarios:

Publicar un comentario