Los que tenemos una página web, necesitamos enviar correos y en ocasiones, bien porque nuestro alojamiento no nos permita enviar e-mails o bien nos ponga algún tipo de restricción en cuanto al número de mensajes que enviamos, nos vemos en la necesidad de buscar alternativas.
Si disponemos de una cuenta de correo que no use TLS/SSL (Secure Sockets Layer -un protocolo de conexión segura-) no tendremos problemas en configurarla y usarla en nuestra web pero ¿qué sucede cuando queremos usar cuentas que usan este TLS/SSL como por ejemplo Gmail? La cosa se nos complica aunque afortunadamente tenemos una alternativa bastante eficiente: PHPMailer.
En este tutorial verás de forma sencilla cómo instalar PHPMailer en tu sitio web y hacer uso de él fácilmente.
El primer paso es descargar PHPMailer. Se trata de una herramienta con licencia LGPL por lo que es completamente libre, gratuita y que puedes distribuir sin problemas.
Descarga el archivo PHPMailer adecuado para tu versión de PHP. La mayoría de hostings incorporan la version PHP5 aunque algunos aún continúan con PHP4.
Descomprime el archivo que acabas de descargar y renómbralo a PHPMailer para simplificar su ruta de acceso cuando lo manejes desde tu web. Si quieres, puedes borrar las carpetas docs, examples, test y test_script para ahorrar espacio en tu alojamiento.
Sube este directorio a tu espacio web usando el cliente de FTP que más cómodo te resulte.
Ahora ya estamos preparados para enviar nuestro primer e-mail de pruebas.
Para poder enviar ese primer e-mail necesitamos crear un sencillo script en PHP. Así que crea un nuevo documento de texto plano sin formato (.txt) y pega esto en su interior:
require_once('../class.phpmailer.php');
Sustituye ../class.phpmailer.php por la ruta absoluta del archivo class.phpmailer.php en tu web. Esto no es tu dirección web, sino la ruta dentro de tu alojamiento que suele tener una forma parecida a: /home/vol7/mihost.com/usuario/midominio.com/htdocs.
La línea quedaría así:
Respeta siempre las mayúsculas y minúsculas.
Ahora añade:
$mail->IsSMTP(); // telling the class to use SMTP
try {
$mail->Host = "smtp.gmail.com"; // SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Port = 465; // set the SMTP port for the GMAIL server
Esta parte de código la dejamos sin modificar puesto que ya hemos colocado los datos para que conecte con Gmail mediante SSL.
Y ahora añade:
$mail->Password = "yourpassword"; // GMAIL password
y cambia Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. y yourpassword por tu nombre de usuario y contraseña de Gmail para que puedas ser autentificado correctamente.
Aquí colocaremos en Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. la dirección de correo de nuestro destinatario y en John Doe su nombre.
En Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. pondremos nuestra dirección de email o la de nuestro dominio. En definitiva, la dirección del remitente.
Si deseamos indicar una dirección distinta por si el destinatario desea responder al correo que le enviamos colócala aquí o bien usa la misma que usaste en $mail->SetFrom();
El asunto del correo.
Si quieres que el usuario reciba un texto en el caso de que su cliente de correo no soporte HTML puedes ponerlo aquí y si no, puedes prescindir de esta línea.
Aquí pondremos el cuerpo del mensaje, el contenido del e-mail. Podrás hacerlo de varias maneras: la primera escribiendo directamente el mensaje de esta forma:
otra forma es incluyendo el código HTML apropiado:
o bien pasarle un archivo html que previamente tendremos en nuestra web:
Ten en cuenta que es preciso pasarle la ruta absoluta del archivo.
Aquí podremos enviar archivos adjuntos, siempre limitados por las características de Gmail en cuanto al tamaño del archivo. Simplemente pásale la ruta absoluta del archivo a enviar.
Finalmente, cerramos el código del script con estas líneas:
echo "Message Sent OK\n";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
?>
Una vez guardado este script como testcorreo.php, lo subimos a nuestra web y accedemos a él:
Si has configurado correctamente el script recibirás un mensaje indicándote que se ha enviado tu correo, en caso contrario puedes obtener el mensaje de error y poder así corregirlo.
Esta es la forma de enviar tus correos usando Gmail. Siempre puedes adaptar este script a tus necesidades para integrarlo con otros scripts o crear formularios.
Si quieres obtener el script completo para modificarlo desde tu ordenador puedes bajarlo de aquí.
Si tienes algún problema visita nuestro foro y comenta tus dudas.
Si alguno de los enlaces esta roto notifícalo a Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.