Cristalab Me pareció interesante hacer este Tip para aquellos que quieran mandar mails de manera sencilla y rápida con la librería PHPMailer. La gran mayoría de personas que programan en PHP, utilizan la función mail() para realizar envíos, ya sean simples o complejos. Pero algunos servidores tienen bloqueada la función mail() de php por cuestiones de seguridad. PHP Mailer es una librería escrita en php para envío de mails desde una web utilizando una cuenta válida de correo de un servidor de mails. Algunas de las funciones que trae son:"/>
Inicio > PHP en General > Email masivo en PHP con PHPMailer

Email masivo en PHP con PHPMailer

Miércoles, 16 de diciembre de 2009 Dejar un comentario Ir a comentarios

Original de Cristalab

Me pareció interesante hacer este Tip para aquellos que quieran mandar mails de manera sencilla y rápida con la librería PHPMailer. La gran mayoría de personas que programan en PHP, utilizan la función mail() para realizar envíos, ya sean simples o complejos. Pero algunos servidores tienen bloqueada la función mail() de php por cuestiones de seguridad.

PHP Mailer es una librería escrita en php para envío de mails desde una web utilizando una cuenta válida de correo de un servidor de mails. Algunas de las funciones que trae son:

  • Envíos a varios remitentes, con CC, CCO, etc.
  • Soporta 8bits, base64 y binarios
  • Autenticación por SMTP
  • Envíos con HTML
  • Envíos de email con adjuntos
  • Inclusión de imágenes en el correo

Instalación de PHPMailer

Descarga PHPMailer desde la web oficial en Worxware. Una vez descargada la librería, copia los archivos class.phpmailer.php y class.smtp.php al servidor. Crea un archivo php, por ejemplo: “Enviar.php”
En el que escribiremos los siguiente:

Código :

  require("class.phpmailer.php"); //Importamos la función PHP class.phpmailer  $mail = new PHPMailer();  Luego tenemos que iniciar la validación por SMTP:  $mail->IsSMTP();  $mail->SMTPAuth = true// True para que verifique autentificación de la cuenta o de lo contrario False  $mail->Username = "remitente@dominio.com"// Cuenta de e-mail  $mail->Password = "************"// Password  $mail->Host = "localhost"$mail->From = "remitente@dominio.com"$mail->FromName = "Nombre a mostrar del Remitente"$mail->Subject = "Asunto"$mail->AddAddress("destinatario@dominio.com","Nombre a mostrar del Destinatario");  $mail->WordWrap = 50$body  = "Hola, este es un…"$body .= " mensaje de prueba"$mail->Body = $body$mail->Send();  // Notificamos al usuario del estado del mensaje  if(!$mail->Send()){     echo "No se pudo enviar el Mensaje.";  }else{     echo "Mensaje enviado";  }  ?>

Sube el archivo “Enviar.php” al servidor en la misma ubicación que los archivos class.phpmailer.php y class.smtp.php.

Notas:

PHPMailer tiene la posibilidad de enviar archivos adjuntos. Los mismos se pueden agregar de la siguiente forma:

Código :

$mail->AddAttachment("imagenes/img.jpg""nombre_a_mostrar.jpg");

El primer parámetro la ruta del archivo. El segundo, es el nombre del archivo a mostrar.
También tenemos la posibilidad de agregar cuentas con CC o CCO, con las siguientes líneas:

Código :

$mail->AddCC("cuenta@dominio.com"); 
$mail->AddBCC("cuenta@dominio.com");

Para indicar si el mensaje contiene HTML:

Código :

$mail->IsHTML(true); // El correo se envía como HTML

Articulos relacionados:

Categories: PHP en General Tags: ,
  1. Jor-L
    Jueves, 17 de diciembre de 2009 a las 11:03 | #1

    Y donde esta la masividad de este snippet? Aqui mandas solo 1 correo…

  2. Jueves, 17 de diciembre de 2009 a las 11:06 | #2

    @Jor-L en este ejemplo mandas solo 1 mail, pero podrias hacer una query a una BD para recoger un set de datos con email y enviar un mail a cada 1 de esos registros.

    Saludos

  3. darkmaster
    Lunes, 4 de enero de 2010 a las 13:55 | #3

    no funciona

  4. Sábado, 30 de enero de 2010 a las 04:49 | #4

    Para que sea masivo solo capturar de su base de datos el correo y el nombre y hacer un foreach

    foreach($usuarios as $usuario)
    {
    $mail->AddAddress($usuario->correo,$usuario->nombre)
    }

    de esta forma si sera un envio masivo

  5. LUIS
    Lunes, 23 de agosto de 2010 a las 14:40 | #5

    Se necesita una persona EXPERTA EN LINUX que sepa operar un servidor de mail en Linux:, la base de datos esta en MySQL y el lenguaje de programación debiera se PHP.

    · Un sistema de administración de los mismos, la base de datos esta en MySQL y el lenguaje de programación debiera se PHP.

    · Un gestionador de envíos.

    · Configuración de los mail para envíos masivos que se abran como spam

    · Generador de informes de archivos enviados, recibidos, abiertos y lugar desde donde se abrió el correo.

    ENVIAR DATOS A LUISHENRIQUEZ@NATURALPHONE.CL

  6. raiman
    Viernes, 6 de mayo de 2011 a las 23:24 | #6

    como haces el envio masivo desde php sin que haya problemas por exceder el tiempo maximo para el scrip cuando son muchos los correos?

  7. Luis L.
    Sábado, 11 de junio de 2011 a las 15:59 | #7

    Yo para enviar correo lo hago utilizando un CRON, es cron es como un hilo del propio sistema operativo, es decir que después de ejecutarlo puedes cerrar el navegador y el proceso quedará corriendo en el server.

    hay varios ejemplos en google busca enviar mail con un cron php

  8. Daniel G.
    Lunes, 5 de marzo de 2012 a las 17:57 | #8

    Hola…
    he hecho todos los pasos que describes y funciona perfecto, sin embargo he usado FPDF para generar un pdf y enviarlo adjunto a traves de PHPmailer… todo bien hasta que recibes el mail con el archivo pdf , pero sin la informacion 0 kb…

    Mi consulta es ¿sabes por que se produce este error? he buscado en varios post, pero no encuentro explicacion al error

    agradeceria me guiaras.

    saludos

  1. Jueves, 14 de julio de 2011 a las 05:33 | #1