PHP

Plantillas de correo electrónico de código abierto con PHPMailer

Compartir

[caption id="attachment_840" align="aligncenter" width="1225"]free_email_templates Plantillas de correo electrónico[/caption]

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

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

  1. $setFromEmail: Correo electrónico del remitente del mensaje
  2. $setFromName: Nombre de la persona o entidad que envía el E-mail
  3. $addReplyToEmail: Correo electrónico donde el destinatario podría responder al E-mail
  4. $addReplyToName: Nombre de la persona a quien dirigirse en caso de responder
  5. $addAddressEmail: Correo electrónico del destinatario del mensaje
  6. $addAddressName: Nombres y Apellidos del destinatario
  7. $subject: Asunto del mensaje
  8.  $template: Ruta de la plantilla en formato HTML que se incluirá en el cuerpo del mensaje.

[caption id="attachment_841" align="aligncenter" width="1185"]estructura_archivos Estructura de archivos[/caption]

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]

DESCARGAR ARCHIVOS

[/sociallocker]

Obed Alvarado

Sobre el autor

Artículo redactado por Obed Alvarado. Comparto experiencias prácticas sobre PHP, MySQL, aplicaciones web, instalación en hosting y herramientas para negocios.

Comentarios