• Domingo 17 de Noviembre de 2024, 23:01

Autor Tema:  Enviar CCO con php  (Leído 2054 veces)

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Enviar CCO con php
« en: Sábado 25 de Octubre de 2008, 06:37 »
0
Hola ando necesitando mandar un mail a varios destinatarios pero sin que se vean las "otras" direcciones para que sea mas "personal"... s por esto que necesito mandar el mail que sea CCO, no es así?

Si alguien sabe hacer esto se lo agradeceré.
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Enviar CCO con php
« Respuesta #1 en: Sábado 25 de Octubre de 2008, 06:47 »
0
Acavo de buscar en google y ya encontré info...

La dejo como feedback para nuestro foro:

En algunas ocasiones nos topamos con la necesidad de enviar email a una lista de correo, esto lo podemos hacer utilizando la librería PHPMailer el cual nos permite enviar emails con algunas opciones avanzadas para este tipo de labores.

Extraer datos de los destinatarios
Sea que tenemos una lista de clientes registrados en una base de datos tienda en la tabla clientes y deseamos enviarle un comunicado a cada uno de ellos de forma personalizada. Lo primero que tenemos que hacer es realizar la consulta a la base de datos y extraer los datos de estos clientes.
PHP:

   1.
      mysql_connect("localhost", "usuario", "password");
   2.
      mysql_select_db("tienda");
   3.
      $result = mysql_query("SELECT nombres, email FROM clientes");
   4.
      while ($row = mysql_fetch_array($result)) {
   5.
         // echo $row["nombres"];
   6.
      }

Integrando con PHPMailer
El siguiente paso es hacer el envío de los correos, para ello primero incluimos la clase class.phpmailer.php, definimos los datos del remitente y creamos el mensaje personalizado en html y texto a enviar a la lista.
PHP:

   1.
      require("class.phpmailer.php");
   2.
       
   3.
      $mail = new PHPMailer();
   4.
      $mail->Host = "smtp1.example.com";
   5.
      $mail->From = "list@domain.com";
   6.
      $mail->FromName = "List manager";
   7.
      $mail->Subject = "Subject del correo";
   8.
       
   9.
      mysql_connect("localhost", "usuario", "password");
  10.
      mysql_select_db("tienda");
  11.
      $result = mysql_query("SELECT nombres, email FROM clientes");
  12.
      while ($row = mysql_fetch_array($result)) {
  13.
          // HTML body
  14.
          $body = "Hola <strong>".$row["nombres"]."</strong>, ";
  15.
          $body.= "<p>Les comunicamos el nuevo servicio... <p>";
  16.
          $body.= "<em>List manager</em>";
  17.
          // Text body
  18.
          $text = "Hola ".$row["nombres"].", nn";
  19.
          $text.= "Les comunicamos el nuevo servicio...nn";
  20.
          $text.= "List manager";
  21.
          // Configurar Email
  22.
          $mail->Body = $body;
  23.
          $mail->AltBody = $text;
  24.
          $mail->AddAddress($row["email"], $row["nombres"]);
  25.
          // Enviar el email
  26.
          if(!$mail->Send()) {
  27.
              echo "Error al enviar a: " . $row["email"] . "<br>";
  28.
          }
  29.
          $mail->ClearAddresses();
  30.
      }

Nótese que incluimos la dirección del destinatario con el método AddAddress en donde le pasamos el email y el nombre de la persona a la que deseamos enviar el email y finalmente utilizamos ClearAddresses el cual elimina las email a los cuales se ha enviado anteriormente el mensaje, de esta forma le llegará a cada usuario una mensaje único si necesidad de mostrar a quienes mas se esta enviando el mensaje.

Observaciones
En el caso que se quiera enviar a listas muy grandes, se deben cambiar algunos parámetros de configuración de PHP por ejemplo el tiempo de ejecución para que no se detenga el envío si el tiempo de proceso excede el tiempo de configuración. Una solución es hacer el envío en bloques de 500 o en bloques de 1000 por vez por ejemplo con lo cual no se superará el tiempo limite.

INFO FROM: http://blog.unijimpe.net/enviar-email-multiple-con-php/

Salute
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar