Enviar mails con PHPMAILER en vez de MAIL()
Estos días he tenido que actualizar en mis servidores de mis aplicaciones las políticas de los servidores de correo, para evitar posibilidades de envios de spam y correos fraudulentos. Al hacer esto, ahora es imposible hacer el uso de la función mail(). ¡Pero todas mis soluciones tienen multitud de automatismos con las que mandan correos a los clientes! Así que… He actualizado el core de mis aplicaciones para empezar a sacar los correos con phpMailer.
Sobre phpMailer
Esta es una clase PHP muy extendida. La usan multitud de scripts desplegados en producción de todo tipo, tanto en software freeware como en soluciones de pago. En el caso de mis aplicaciones, me viene al pelo para poder hacer un mejor y más fiable envio de correos electrónicos.
Cómo enviar mails con phpMailer
En este ejemplo, os voy explicar cómo hacerlo de manera muy sencilla.
Lo primero, descargamos la versión 5 de phpMailer desde AQUÍ. Esta versión es ya antigua, sin embargo, es más sencillo de hacer funcionar el uso del SMTP con esta versión que con la más reciente… Para entenderlo, nos basta y nos sobra.
Con estos ficheros tenemos lo indispensable: La clase que nos monta la abstracción sobre los correos y los métodos del SMTP. Con ello, conseguimos que nos acepte algunos parámetros para poder hacer un envío usando el login del servidor. Son class.phpmailer.php y class.smtp.php
Una vez subido a nuestro servidor, creamos una cuenta de correo. Para esta versión, debes tener en cuenta que la contraseña ha de escapar los caracteres especiales, puesto que, de lo contrario, no te lo reconocerá y te dará un error de autenticación en el SMTP, con un error del estilo:
SMTP Error: Could not authenticate. phpmailer
Después, creamos nuestro script php con el que procesar los correos. Lo suyo es hacer una prueba genérica, con algo del estilo de esto:
require(“class.phpmailer.php”); //Importamos la función PHP
class.phpmailer$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; // True para que verifique autentificación de la cuenta o de lo contrario False
$mail->Username = “usuario@dominio.com”;
// Tu cuenta de e-mail
$mail->Password = “************”; // El Password de tu casilla de correos
$mail->Host = “localhost”;
$mail->From = “de@dominio.com”;
$mail->FromName = “Nombre a mostrar del Remitente”;
$mail->Subject = “Asunto”;
$mail->AddAddress(“destinatario@dominio.com”,”Nombre a mostrar del Destinatario”);
$mail->WordWrap = 50;
$body = “Hola, este es un…”;
$body .= “mensaje de ejemplo”;
$mail->Body = $body;
$mail->Send();
// Notificamos al usuario del estado del mensaje
if(!$mail->Send()){
echo “No se pudo enviar el Correo.”;
}else{
echo “Mensaje enviado”;
}
Y con esto… ¡Ya está! Ya podrás enviar mails con phpmailer