Posts Tagged ‘PHPMailer’

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

junio 13, 2009 4

Envio de correo usando PHPMailer

By in Librerías, PHP

Es relativamente fácil enviar correo con PHP usando la función mail(). Pero en algunas ocasiones querremos hacer algo más complejo pero de forma que nos cueste menos trabajo, y de paso que nuestro código quede más legible.

Para ello podemos hacer uso de la clase PHPMailer. Lo primero que tenemos que hacer es incluir la clase PHPMailer. Acto seguido creamos una instancia de la clase. A continuación vamos a ver cuales son:

Nombre Descripción Valor por defecto
AltBody Texto alternativo. Para los mensajes en solo texto. “”
Body Cuerpo del email. Puede ir en formato HTML. “”
CharSet Conjunto de caracteres del correo. iso-8859-1
ConfirmReadingTo Dirección a la que se enviará una confirmación de lectura del correo. “”
ErrorInfo Información sobre el último error producido. “”
From Dirección de origen del mensaje. root@localhost
FromName Nombre del emisor del mensaje. Root User
Host Servidor SMTP a través del cual se enviará el correo. localhost
Mailer Método mediante el cual se enviará el correo. Puede ser mail, sendmail o smtp. mail
Password Contraseña del servidor SMTP “”
PluginDir Directorio donde se encuentran los plugins. Por ejemplo el de envio por SMTP. “”
Port Puerto del servidor SMTP. 25
Priority Prioridad del email. (1 = Alta, 3 = Normal, 5 = Baja) 3
ReplyTo Direcciones a las que responder el correo. array()
SMTPAuth Establece si hay o no autenticación SMTP. false
Subject Asunto del correo. “”
Timeout Tiempo de espera antes de producirse un error den TimeOut 10
Username Usuario del servidor SMTP “”
WordWrap Ancho máximo del mensaje. 0

Ahora veamos los principales métodos:

Nombre Retorno Parámetros Descripción
AddAddress void $address: dirección de correo.
$name: nombre del destinatario. Este parámetro es opcional.
Añade una dirección de destino para el correo.
AddAttachment bool $path: Ruta del archivo.
$name: Nombre del archivo.
$encoding: Tipo de codificación. Por defecto base64.
$type: Tipo MIME del archivo. Por defecto application/octet-stream.
Añade un archivo adjunto al mensaje.
AddBCC void $address: Dirección que queremos añadir.
$name: Nombre del destinatario. Este parámetro es opcional.
Añade una dirección BCC.
AddCC void $address: Dirección que queremos añadir.
$name: Nombre del destinatario. Este parámetro es opcional.
Añade una dirección como CC.
AddReplyTo void $address: Dirección que queremos añadir.
$name: Nombre del destinatario. Este parámetro es opcional.
Añade una dirección para el Reply To.
IsHTML void $bool: indica si el mesaje es en formato HTML Establece un mensaje como HTML.
Send bool Envía el mensaje. Devuelve true si se envía correctamente. En caso de devolver false podemos consultar la propiedad ErrorInfo para saber que error ha ocurrido.

Después de esto vamos a ver un pequeño ejemplo:

<?
	include("class.phpmailer.php");

	//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 = "<p>Esto es un <strong>ejemplo</strong> de correo.</p>";
	$mail->AltBody = "Esto es un ejemplo de correo.";

	//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;
	}
?>

El código es autoexplicativo, pero si tenéis alguna duda se puede preguntar en los comentarios sin problema alguno.

Normalmente suelo recomendar consultar la documentación de las librerías que comento en el blog. Esta vez no va a ser menos y la podéis consultar en la web de PHPMailer. Hay que ir al siguiente menú: Products > PHPMailer > support – x, donde la x es un tema documentado, como los métodos, las propiedades o un tutorial.

En este caso no se adjunta archivo con el código del ejemplo, ya que no funcionaría directamente al tener que configurar bien los datos del emisor y el receptor y los datos del servidor SMTP. Pero tenéis la opción de copiar y pegar y colocar los datos de acuerdo con vuestras necesidades.

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

Tags: , ,