Habitualmente, para el envío de correo con PHP se utiliza la función mail(), integrada en el propio lenguaje. Sí bien la función cumple con su cometido, son notorias sus limitaciones.
PHPMailer es una clase que cubre las carencias de mail() y facilita el uso de propiedades avanzadas en el envío de correos. Por ejemplo, permite ficheros adjuntos o utilizar un servidor SMTP con autenticación. Gracias a esta última característica podremos enviar correos desde nuestra cuenta Gmail y evitar la instalación de un servidor de correo.
El primer paso para usar PHPMailer es descargar la clase de sourceforge. Nos encontraremos con dos archivos que debemos instanciar en nuestro código, class.phpmailer.php con la clase y class.smtp.php, opcional para utilizar servidores SMTP.
Empezamos con un ejemplo simple usando Sendmail:
require 'class.phpmailer.php'; $mail = new PHPMailer(); $mail->IsSendmail();//usamos Sendmail, también podemos usar mail() con isMail() $mail->FromName = 'Juan Palomo'; $mail->From = 'remitente@dominio.com';//email de remitente desde donde se envía el correo. $mail->AddAddress('destinatario@dominio.com', 'Destinatario');//destinatario que va a recibir el correo $mail->AddCC('copia@dominio.com', 'copia');//envía una copia del correo a la dirección especificada $mail->Subject = 'Asunto de email'; $mail->AltBody = 'cuerpo del mensaje en texto plano';//cuerpo con texto plano $mail->MsgHTML('Mensaje con HTML');//cuerpo con html $mail->AddAttachment("archivo.zip");//adjuntos un archivo al mensaje if(!$mail->Send()) {//finalmente enviamos el email echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió } else { echo 'Correo enviado correctamente'; }
Enviar un correo usando Gmail y PHPMailer:
require 'class.phpmailer.php'; require 'class.smtp.php'; //incluimos la clase para envíos por SMTP $mail = new PHPMailer(); $mail->IsSMTP(); $mail->CharSet = 'UTF-8'; $mail->SMTPAuth = true; $mail->SMTPSecure = "ssl"; $mail->Host = "smtp.gmail.com"; //servidor smtp $mail->Port = 465; //puerto smtp de gmail $mail->Username = 'email@gmail.com'; $mail->Password = 'tucontraseña'; $mail->FromName = 'Juan Palomo'; $mail->From = 'remitente@dominio.com';//email de remitente desde donde se envía el correo. $mail->AddAddress('destinatario@dominio.com', 'Destinatario');//destinatario que va a recibir el correo $mail->AddCC('copia@dominio.com', 'copia');//envía una copia del correo a la dirección especificada $mail->Subject = 'Asunto de email'; $mail->AltBody = 'cuerpo del mensaje en texto plano';//cuerpo con texto plano $mail->MsgHTML('Mensaje con HTML');//cuerpo con html $mail->AddAttachment("archivo.zip");//adjuntos un archivo al mensaje if(!$mail->Send()) {//finalmente enviamos el email echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió } else { echo 'Correo enviado correctamente'; }



















