julio 8, 2009 0

Envio de correo personalizado con PHP Mailer y Template Power

By in Librerías, PHP

Cuando enviamos un correo electrónico desde una aplicación en PHP podemos hacer uso de Template Power para generar el correo y de PHP Mailer para enviarlo. Vamos a verlo con un ejemplo:

correo.tpl:

<p>Sr./Sra.: {nombre}:</p>
<p>Cuerpo del correo.</p>

envio.php:

<?php
include 'class.phpmailer.php';
include 'class.TemplatePower.inc.php';

$tpl = new TemplatePower('correo.tpl');
$tpl->prepare();

$tpl->assign('nombre', $nombre);
//Creamos la instancia de la clase PHPMAiler
$mail = new phpmailer();

//El método que usaremos es por SMTP
$mail->Mailer = "smtp";

// Los datos necesarios para enviar mediante SMTP
$mail->Host = "smtp.nuestrohost.com";
$mail->SMTPAuth = true;
$mail->Username = "cuenta@nuestrohost.com";
$mail->Password = "password";

// Asignamos el From y el FromName para que el destinatario sepa quien
// envía el correo
$mail->From = "cuenta@nuestrohost.com";
$mail->FromName = "Manuel Carrascosa de la Blanca";

//Añadimos la dirección del destinatario
$mail->AddAddress("direccion@hostdestino.com");

//Asignamos el subject, el cuerpo del mensaje y el correo alternativo
$mail->Subject = "Ejemplo de PHPMailer";
$mail->Body = $tpl->getOutputContent();

//Si al enviar el correo devuelve true es que todo ha ido bien.
if($mail->Send())
{
	//Sacamos un mensaje de que todo ha ido correctamente.
	echo "Mensaje enviado correctamente.";
}
else
{
	//Sacamos un mensaje con el error.
	echo "Ocurrió un error al enviar el correo electrónico.";
	echo "<br/><strong>Información:</strong><br/>".$mail->ErrorInfo;
}
?>

Podemos ver que básicamente lo que se hace es tener por un lado la plantilla. Luego con el método getOutputContent de la clase TemplatePower obtenemos el resultado de la plantilla y lo asignamos a la propiedad Body de nuestra instancia de la clase phpmailer. Luego simplemente enviamos el correo.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: , , ,

Leave a Reply