
Plantillas de correo electrónico
En esta ocasión quiero compartir una función php para el envío de correo electrónicos, ya que muchos desarrolladores PHP nos apoyamos en la función mail(), la cual es la única función nativa que soporta el envío de correo electrónico en PHP. Sin embargo, no proporciona ninguna ayuda para el uso de características mas avanzadas, tales como el envío correo electrónico con archivos adjuntos y en formato HTML.
Es por tal razón que decidí utilizar la clase PHPMailer para facilitar la labor de enviar correos electrónicos con un diseño mucho más elegante.
¿Porque PHPMailer? Porque es probablemente la clase más popular del mundo para el envío de correo electrónico desde PHP. Ademas PHPMailer es utilizado por muchos proyectos de código abierto: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! y muchos más.
¿Qué haremos? Ir al repositorio en Github de PHPMailer, descargar la clase, luego descomprimir en el servidor web y manos a la obra, a crear la función php para enviar correo electrónico.
sendmail.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php function sendmail($setFromEmail,$setFromName,$addReplyToEmail,$addReplyToName,$addAddressEmail,$addAddressName,$subject,$template){ require 'PHPMailer/PHPMailerAutoload.php'; //Create a new PHPMailer instance $mail = new PHPMailer; // Set PHPMailer to use the sendmail transport $mail->isSendmail(); //Establecer desde donde será enviado el correo electronico $mail->setFrom($setFromEmail, $setFromName); //Establecer una direccion de correo electronico alternativa para responder $mail->addReplyTo($addReplyToEmail, $addReplyToName); //Establecer a quien será enviado el correo electronico $mail->addAddress($addAddressEmail, $addAddressName); //Establecer el asunto del mensaje $mail->Subject = $subject; //convertir HTML dentro del cuerpo del mensaje $mail->msgHTML(file_get_contents($template)); //send the message, check for errors if (!$mail->send()) { echo "Error al enviar mensaje: " . $mail->ErrorInfo; } else { echo "Mensaje enviado!"; } } |
La función sendmail(), recibe 8 parámetros, los cuales explico a continuación:
- $setFromEmail: Correo electrónico del remitente del mensaje
- $setFromName: Nombre de la persona o entidad que envía el E-mail
- $addReplyToEmail: Correo electrónico donde el destinatario podría responder al E-mail
- $addReplyToName: Nombre de la persona a quien dirigirse en caso de responder
- $addAddressEmail: Correo electrónico del destinatario del mensaje
- $addAddressName: Nombres y Apellidos del destinatario
- $subject: Asunto del mensaje
- $template: Ruta de la plantilla en formato HTML que se incluirá en el cuerpo del mensaje.

Estructura de archivos
Bien ahora solo nos falta la plantilla HTML, la cual se encargara de dar un interfaz mucho mas elegante y para ello he utilizado un pack de plantillas de código abierto, las cuales pueden ser descargadas libremente desde el sitio web: sendwithus.com . Para este ejemplo se ha usado 3 plantillas, como lo son: confirmation.html, invite.html e invoice.html
Ya con ello tendríamos lista nuestra función para enviar correos electrónicos con un diseño mucho mas bonito y totalmente responsivo, luego dependerá de nuestra creatividad poder personalizar las plantillas y funcionamiento del script; de tal forma que podamos utilizarlo en nuestros proyectos.
Para descargar los archivos, debes realizar cualquiera de las siguientes acciones sociales:
[sociallocker]
[/sociallocker]