Geek the Planet


How To no image

Published on mayo 7th, 2011 | by Angelfire

4

How to: Enviar emails usando PHP y PHPMailer

La semana pasada, mientras me encontraba realizando una aplicación para la Universidad, me encontré con que uno de los requerimientos era crear una serie de formularios que permitieran enviar una seria de informes, oficios, solicitudes de correo, entre otras cosas. Y bueno, como es obvio en todo novato, en lo primero en que pensé fue usar la función mail() de PHP, pero me encontré con un pequeño problema, y es que no permite enviar adjuntos, grave problema… Buscando me encontré con PHPMailer, que terminó por salvarme la vida, ya que permite adjuntar archivos de una manera bastante sencilla, además aún está soportada y disponible para PHP5 y PHP6, les mostraré como enviar un correo fácilmente con la ayuda de esta clase.

Lo primero es descargar el paquete de PHPMailer, adentro encontrar:

  • class.phpmailer.php
  • class.pop3.php
  • class.smtp.php
  • Ejemplos, documentación, pruebas, archivos de idioma, etc.

Nosotros sólo necesitaremos el primero: class.phpmailer.php, ya que sólo enviaremos correo, por otro lado es que necesitamos tener sendmail (agente para el transporte de correos).

Bueno, ahora si, al grano. Lo primero es crear una instancia de la clase:

<?php
require("class.phpmailer.php");
$mail = new PHPMailer();
?>

Ahora, lo que voy a mostrar a continuación es lo esencial y exageradamente básico, digamos como un 1% de lo que se puede hacer con PHPMailer (un Hola Mundo con esta clase).

<?php
require("class.phpmailer.php");
$mail = new PHPMailer();

$mail->Host = "localhost";
$mail->From = "correo@correo.com";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Asunto del correo";
$mail->AddAddress("correo@correo.com","Tu nombre");
$body  = "Hola <strong>geeks</strong> del mundo<br />";
$body .= "Esta es una prueba con <em>PHPMailer</em><br />";
$body .= "<strong>Geek The Planet</strong>";
$mail->Body = $body;
$mail->Send();
?>

Con esto bastará, cambiando en AddAddress correo@correo.com por un correo real funcionará perfectamente.

Nota: class.phpmailer.php y el archivo .php donde hicieron la anterior configuración deben estar en la misma carpeta.

Estoy preparando un ejemplo más avanzado donde use un formulario en HTML.

Tags: , ,


About the Author

Systems Engineering, Computer Systems Specialist, Social Engineering Specialist. Social Media Analyzer. Usability and SEO enthusiasm (Este es mi perfil de Twitter...)



4 Responses to How to: Enviar emails usando PHP y PHPMailer

  1. Rafa Occelli says:

    Hola:
    estuve viendo tu ejemplo, y no funciona, ni en mi localhost ni en mi sitio web de pruebas gratuito, por lo que deduzco que tiene algún problema, me gustaría que me ayudaras, ya que le veo interés a esta clase, mi intención es no tener que utilizar un sistema email contratado y aprovecharme de la cuenta gmail que poseo para enviar email mi correo es cosm2occelli@hotmail.com por si te interesa enviarme algún email

  2. Joaquin says:

    Muchas gracias por el aporte…me sirvió mucho !

  3. jonathan says:

    me gustaria ver un ejemplo donde yo pueda mandar un email a donde yo quiera… que sea usuario gmail el destino.

  4. Argenis says:

    @jonathan: es sencillo solo necesitas las siguientes lineas:

    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = “ssl”;
    $mail->Host = “smtp.gmail.com”;
    $mail->Port = 465;
    $mail->Username = “correo@gmail.com”;
    $mail->Password = “contraseña del correo”;
    $mail->From = “correo@gmail.com”;
    $mail->FromName = “nombre del que manda”;
    $mail->Subject = “Prueba de correo PHPMailer”;
    $mail->AltBody = “Hola\neste correo ha sido enviado desde php usando PHPMailer.”;
    $mail->MsgHTML(“Hola, este correo ha sido enviado desde php usando PHPMailer“);
    $mail->AddAddress(“destino@correo.com”);
    $mail->IsHTML(true);

    if(!$mail->Send()){
    echo “Error”. $mail->ErrorInfo;
    } else {
    echo “Mensaje Enviado”;
    }

Back to Top ↑