La clase PHPMailer se emplea para el envío de correos en aplicaciones web desarrolladas en PHP. Permite utilizando configurar en pocas líneas tanto el servidor de correos como las cabeceras y el cuerpo de los correos. En este tutorial vamos a explicar como enviar correos en PHP mediante un servidor SMTP.
Para comenzar a utilizar PHPMailer descargar la última versión disponible aquí. Antes de comenzar vamos a diferenciar dos partes principales que se deben configurar:
- ¿Cóimo se va a enviar el correo, a través de que servidores y protocolos?
- ¿Qué se va a enviar y a quién?
1.- Configurar el servidor smtp de envío de correos
Para poder enviar un correo es necesario configurar previamente un servidor SMTP. PHPMailer nos permite configurar los parámetros de este servidor en pocas líneas. Estos son algunos de los parámetros de configuración que se pueden utiilzar:
- Habilitar la autenticación en el servidor
- Puerto de escucha del servidor
- Dirección del servidor
- Usuario y contraseña para autenticarse contra el SMTP
Esto traducido a líneas de código sería lo siguiente:
PHP |copy code |?
01 <?php
02 03 require '../class.phpmailer.php';04 try {
05 06 // Crear una nueva instancia de PHPMailer habilitando el tratamiento de excepciones
07 $mail = new PHPMailer(true);08 09 // Configuramos el protocolo SMTP con autenticación
10 $mail->IsSMTP();11 $mail->SMTPAuth = true;12 13 // Puerto de escucha del servidor
14 $mail->Port = 2515 16 // Dirección del servidor SMTP
17 $mail->Host = 'miservidor.smpt.com';18 19 // Usuario y contraseña para autenticación en el servidor
20 $mail->Username = "[email protected]"21 $mail->Password = "XXXXXXX"22 23 ?>
Una vez configurado el servidor SMTP se podría empezar a enviar correos. Recordad incluir la clase al principio del fichero antes de configurar nada.
2. – Configuración de las cabeceras y el cuerpo del correo
Tras configurar el servidor SMTP, el siguiente paso es crear el correo que se quiere enviar. PHPMailer nos permite crear estos correos indicando lo sigiuente:
- Remitente del mensaje de correo, nombre y dirección de correo.
- Destinatarios del correo, añadir una o varias direcciones.
- Destinatarios de correo en copia y copia oculta.
- Asunto del mensaje
- Contenido del correo
- Ficheros adjuntos
Empecemos por configurar los datos del remitente del correo. Pare ello hay que utilizar dos líneas:
PHP |copy code |?
1 2 // Dirección de correo del remitente
3 $mail->From = "[email protected]";4 5 // Nombre del remitente
6 $mail->FromName = "Mi nombre y apellidos";7
El siguiente paso es indicar el o los destinatarios:
- Para añadir nuevos destinatarios indicar la dirección de correo y el nombre (opcional) de cada uno:PHP |copy code |?
1 2 $mail->AddAddress("[email protected]","Nombre 1");
3 $mail->AddAddress("[email protected]","Nombre 2");
4 ...
5 $mail->AddAddress("[email protected]","Nombre n");
6 - Añadir direcciones en copia:PHP |copy code |?
1 2 $mail->AddCC("[email protected]","Nombre copia 1");
3 - Añadir direcciones en copia oculta, igual que la anterior solo que al resto de destinatarios no se les mostrará la dirección de esta persona:PHP |copy code |?
1 2 $mail->AddBCC("[email protected]","Nombre copia 1");
3
Configurar el asunto del mensaje:
PHP |copy code |?
1 2 $mail->Subject = "Asunto del correo";3
Una vez hemos configurado las cabeceras del correo, hay que rellenarlo con el contenido que se quiere enviar. Para añdir el cuerpo del mensaje:
PHP |copy code |?
1 // Creamos en una variable el cuerpo, contenido HMTL, del correo
2 $body = "Proebando los correos con un tutorial<br>";3 $body .= "hecho por <strong>Developando</strong>.<br>";4 $body .= "<font color='red'>Visitanos pronto</font>";5 6 // Añadimos el contenido al mail creado
7 $mail->Body = $body;8 9
Si necesitases enviar algún fichero adjunto al mensaje se debe utilizar el siguiente método que recibe dos parámetros que son la ruta del fichero a enviar, y el nombre que se mostrará en el correo:
PHP |copy code |?
1 2 $mail->AddAttachment("misImagenes/foto1.jpg", "developandoFoto.jpg");3 $mail->AddAttachment("files/proyecto.zip", "demo-proyecto.zip");4
En este punto del tutorial ya tendríamos tanto las cabeceras como el cuerpo del mensaje configuradas. Ahora habría que hacer una llamada a la función ‘send()‘ para su envío:
PHP |copy code |?
1 2 $mail->Send();3
Código completo
Aquí os dejamos el contenido completo del código utilizado en este tutorial:
PHP |copy code |?
01 02 <?php
03 04 require '../class.phpmailer.php';05 try {
06 07 // Crear una nueva instancia de PHPMailer habilitando el tratamiento de excepciones
08 $mail = new PHPMailer(true);09 10 // Configuramos el protocolo SMTP con autenticación
11 $mail->IsSMTP();12 $mail->SMTPAuth = true;13 14 // Configuración del servidor SMTP
15 $mail->Port = 2516 $mail->Host = 'miservidor.smpt.com';17 $mail->Username = "[email protected]"18 $mail->Password = "XXXXXXX"19 20 // Configuración cabeceras del mensaje
21 $mail->From = "[email protected]";22 $mail->FromName = "Mi nombre y apellidos";23 24 $mail->AddAddress("[email protected]","Nombre 1");25 $mail->AddAddress("[email protected]","Nombre 2");26 27 $mail->AddCC("[email protected]","Nombre copia 1");28 29 $mail->AddBCC(“copia1@correo.com”,”Nombre copia 1″);30 31 $mail->Subject = "Asunto del correo";32 33 // Creamos en una variable el cuerpo, contenido HMTL, del correo
34 $body = "Proebando los correos con un tutorial<br>";35 $body .= "hecho por <strong>Developando</strong>.<br>";36 $body .= "<font color='red'>Visitanos pronto</font>";37 38 $mail->Body = $body;39 40 // Ficheros adjuntos
41 $mail->AddAttachment("misImagenes/foto1.jpg", "developandoFoto.jpg");42 $mail->AddAttachment("files/proyecto.zip", "demo-proyecto.zip");43 44 // Enviar el correo
45 $mail->Send();46 47 ?>
48
Siguiendo este tutorial ya deberías ser capáz de configurar los parámetros del servidor de correo SMTP y de crear y enviar un correo en PHP.
Agradecemos que nos dejéis vuestros comentarios con dudas, críticas o sugerencias para mejorar el contenido.
Deja tu comentario