Blog
Enviar un mail desde PHP usando PHPMailer
Hoy en día es muy común que un sistema en PHP necesite enviar un correo electrónico, para esto el lenguaje proporciona una función llamada mail. Lamentablemente esta función no permite enviar archivos adjuntos o formatear el mensaje en código HTML entre otras cosas, es por ese motivo que en este tutorial vamos a ver como utilizar la librería PHPMailer para enviar un mail desde PHP.
Antes de comenzar es un requisito necesario descargarse la librería PHPMailer desde su repositorio de GitHub oficial github.com/Synchro/PHPMailer.
¿Cómo enviar un mail desde PHP?
El siguiente código envía un mail utilizando una cuenta de gmail:
<?php $enviado = 'Enviado: ' . date("Y-m-d H:i:s") . "\n"; $subject = "Este es el asunto del mensaje - "; $message = 'Este es el mensaje a enviar.'; // Cargando la librería de PHPMailer require 'phpmailer/PHPMailerAutoload.php'; // Creando una nueva instancia de PHPMailer $mail = new PHPMailer(); // Indicando el uso de SMTP $mail->isSMTP(); // Habilitando SMTP debugging // 0 = apagado (para producción) // 1 = mensajes del cliente // 2 = mensajes del cliente y servidor $mail->SMTPDebug = 0; // Agregando compatibilidad con HTML $mail->Debugoutput = 'html'; // Estableciendo el nombre del servidor de email $mail->Host = 'smtp.gmail.com'; // Estableciendo el puerto $mail->Port = 587; // Estableciendo el sistema de encriptación $mail->SMTPSecure = 'tls'; // Para utilizar la autenticación SMTP $mail->SMTPAuth = true; // Nombre de usuario para la autenticación SMTP - usar email completo para gmail $mail->Username = "usuario@gmail.com"; // Password para la autenticación SMTP $mail->Password = "1234"; // Estableciendo como quién se va a enviar el mail $mail->setFrom('usuario@gmail.com', 'Usuario'); // Estableciendo a quién se va a enviar el mail $mail->addAddress('otrousuario@gmail.com', 'Otro usuario'); // El asunto del mail $mail->Subject = $subject . $enviado; // Estableciendo el mensaje a enviar $mail->MsgHTML($message); // Adjuntando una imagen //$mail->addAttachment('images/phpmailer_mini.png'); // Enviando el mensaje y controlando los errores if (!$mail->send()) { echo "No se pudo enviar el correo. Intentelo más tarde."; } else { echo "Gracias por contactarnos."; } ?>
Para que funcione correctamente es importante remplazar el email de destino y origen correctamente.
Espero que les haya gustado el ejemplo y ya saben que si tienen alguna duda al respecto no duden en preguntar.