PHPMailer es un librería muy popular para hacer el envío de emails con PHP de manera sencilla, los principios básicos de esta librería la hemos comentado en Introducción a PHPMailer.

Enviando Contenido HTML
PHPMailer acepta hacer el envío de HTML, para ello debemos asignar a la propiedad Body el contenido HTML que deseamos enviar y setear con el método IsHTML a true, como en el siguiente ejemplo básico:
-
require_once("class.phpmailer.php");
-
-
$mail = new PHPMailer();
-
$mail->From = "from@domain.com";
-
$mail->FromName = "From Name";
-
$mail->Subject = "Demo de PHPMailer";
-
$mail->Body = "Hola <strong>Jim</strong>, bienvenido!!!";
-
$mail->IsHTML(true);
-
$mail->AddAddress("user@domain.com", "User Name");
-
$mail->Send();
Enviando Paginas HTML
Entonces si deseamos enviar una página, deberíamos tener el contenido de esta página en una variable y luego asignársela a la propiedad Body como en el ejemplo anterior. Para lograr esto haremos uso de la función file_get_contents el cual devuelve el contenido de una archivo en una variable.
Luego modificamos el código anterior para incluir por ejemplo la página de Google para enviarla, con lo cual nuestro código se transforma en:
-
require_once("class.phpmailer.php");
-
-
$mail = new PHPMailer();
-
$mail->From = "from@domain.com";
-
$mail->FromName = "From Name";
-
$mail->Subject = "Demo de PHPMailer";
-
$mail->Body = $body;
-
$mail->IsHTML(true);
-
$mail->AddAddress("user@domain.com", "User Name");
-
$mail->Send();
Este método de envío es útil cuando deseamos por ejemplo enviar el reporte de un usuario, por cada usuario tendrá un reporte diferente, para ello podríamos llamar a una página del tipo http://tuweb.com/reporte.php?id=354, otra posibilidad es para hacer el envío de boletines.
NOTA:
Hay que tener en cuenta que para que la página seleccionada se envíe correctamente todas las rutas internas de la página deben ser absolutas, es decir si hay una imagen la imgen debe estar incluida de la forma:
-
<img src="http://tuweb.com/photo.jpg" width="150" />
El otro punto a tener en cuenta es que debemos colocar la ruta completa del archivo a leer al momento de llamarlo con file_get_contents por que de lo contrario nos puede devolver el código php del archivo y no el resultado del procesamiento del archivo.
Posts Relacionados

Comentarios Total 10 comentarios
Publicado: 04/07/2009 4:06 pm
Muy bueno man!
Publicado: 05/07/2009 9:36 am
Genial!
Publicado: 05/07/2009 7:15 pm
jej buen aporte! como suspendieron mi host bueno mi patrocinador es temporal pronto renacimiento! por eso vengo apollando a unijimpe jeje…
Publicado: 06/07/2009 4:06 am
Al probarlo me dice que mi servidor tiene desabilitada la funcion file_get_contents()y, al tratarse de un servidor externo, no puedo modificarlo.
SI lo pruebo sin la función funciona perfectamente.
Saludos
Publicado: 06/07/2009 10:30 am
Siempre explicaciones claras y concretas.
Felicitaciones y gracias por el aporte.
Publicado: 06/07/2009 4:12 pm
Hola justo lo que nesecitaba genial gracias!!!
Publicado: 07/07/2009 12:44 pm
Algunos servidores tienen filtros para el SPAM y no permiten el uso de estas librerías. Pero siempre hay un truco. En la cabecera “From” pueden poner “postmaster[at]dominio” y listo.
Publicado: 08/07/2009 1:51 pm
No logro que el codigo funcione necesito tener instalado algun servidor smtp en mi servidor???
Publicado: 09/07/2009 1:35 pm
hola estoy tratando de usar este codigo pero cuando envi el mail de da el siguiente error
Fatal error: Cannot redeclare class PHPMailer in C:\ms4w\Apache\htdocs\SISTUR\mail\class.phpmailer.php on line 34
no logro entender porq si ealguien puede ayudarme se os agradecere
estoy usando Qksmtp server 3
Publicado: 26/07/2009 3:17 am
vaya man, en verdad te felicito por tu gran trabajo de compartir tu informacion con todos. :)