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í:

require_once('/home/vol7/mihost.com/usuario/midominio.com/htdocs/ PHPMailer/class.phpmailer.php');

Respeta siempre las mayúsculas y minúsculas.

Ahora añade:

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$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->Username = "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo."; // GMAIL username
$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.

$mail->AddAddress(Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.', 'John Doe');

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.

$mail->SetFrom(Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.', 'First Last');

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.

$mail->AddReplyTo(Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.', 'First Last');

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();

$mail->Subject = 'PHPMailer Test Subject via mail(), advanced';

El asunto del correo.

$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically

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.

$mail->MsgHTML(file_get_contents('contents.html'));

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:

$mail->MsgHTML('Este es el cuerpo del mensaje.......');

otra forma es incluyendo el código HTML apropiado:

$mail->MsgHTML('Hola:<br> Esto es el cuerpo del mensaje usando <span style="font-weight: bold;">negrita</span>, <span style="font-style: italic;">cursiva</span> y <span style="text-decoration: underline;">subrayado</span><br>');

o bien pasarle un archivo html que previamente tendremos en nuestra web:

$mail->MsgHTML(file_get_contents('mensaje.html'));

Ten en cuenta que es preciso pasarle la ruta absoluta del archivo.

$mail->AddAttachment('images/phpmailer_mini.gif'); // attachment

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:

$mail->Send();
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:

http://midominio.com/testcorreo.php

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.

Sígueme

Suscríbete

Recibe todas las novedades en tu correo

copyright © bitplanet.es 2018

Todos los derechos reservados salvo contenidos que apliquen su propia licencia

aviso legal | política de privacidad | política sobre cookies