Foros del Web » Programando para Internet » PHP »

Envío masivo de emails sin revelar las direcciones destino

Estas en el tema de Envío masivo de emails sin revelar las direcciones destino en el foro de PHP en Foros del Web. Hola, Tengo montada una página que utiliza una BD para llevar control de los clientes. Ocasionalmente me gustaría contactar a mis clientes para avisarles de ...
  #1 (permalink)  
Antiguo 24/06/2004, 11:43
 
Fecha de Ingreso: mayo-2004
Mensajes: 24
Antigüedad: 19 años, 11 meses
Puntos: 0
Envío masivo de emails sin revelar las direcciones destino

Hola,

Tengo montada una página que utiliza una BD para llevar control de los clientes. Ocasionalmente me gustaría contactar a mis clientes para avisarles de cambios en el sitio. Actualmente solo tengo cerca de 20 clientes, y una lista así es relativamente fácil usar la combinación de correspondencia de Outlook para enviarlo, aunque tengo que enviar 20 emails distintos para asegurarme que cada uno no reciba las direcciones de los demás.

Quisiera implementar esto en PHP de la manera más eficientemente posible. Se me ocurriría usar un 'for' en conjunto con la función mail(), pero igual, esto equivale a usar X emails distintos y si esto crece mucho, no quiero que mi servidor se sobrecargue por envío masivo de mails.

Hay alguna manera de enviar en un solo intento todos los correos que necesito, pero limitando la capacidad de los usuarios como para visualizar estas direcciones? (que crean que solamente se lo envié a ellos)

Cualquier orientación será bien recibida. Si la única manera es como digo, hacer un for con mail() pues también, háganmelo saber.

Saludos.
  #2 (permalink)  
Antiguo 24/06/2004, 12:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
no quiero que mi servidor se sobrecargue por envío masivo de mails.
Pues .. igual se va a "sobrecargar" si envias un montón de e-mails ..

PHP con su fución mail() entrega el e-mail al MTA que envia el e-mail físicamente (el servidor SMTP/sendmail/IMPAP que uses en ese servidor) ..

Puedes enviar los e-mails uno por uno .. leyendo las direcciones de una Base de datos, un archivo de texto plano o simples arrays en tu código. Con esto podrás personalizar cada e-mail fácilmente.

Si no quieres hacer esto . .puedes componer la cabecera BCC del e-maili con todas tus direcciones y ejecutar mail() .. Esto igualmente se demorará su tiempo ya que mail() espera a terminar todo el proceso para dar algún resultado tipo "lo entregué todo OK o algo falló .." (que no significa que el e-mail llegue a su destinatario pues, eso lo hace el "MTA").

Te recomendaría usar la classe:
PHP Mailer
http://phpmailer.sourceforge.net

Que, entre otras cosas, permite usar servidores SMTP directos para realizar el envio y componer de forma cómoda un "BCC" sin problemas.

Un saludo,
  #3 (permalink)  
Antiguo 24/06/2004, 12:33
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 2 meses
Puntos: 6
si tienes los datos en un base de datos SQL es facil:

Código PHP:
<?
//konektas kon el servidor
$c mysql_connect("localhost","usuario","pass");
//selekcionas tu base de datos
mysql_select_db("nombredeladb");

//realizas la konsulta

$r mysql_query("SELECT email FROM clientes") or die(mysql_error());
while(
$row mysql_fetch_array($r)) {
//envias el email
$envio mail($row["email"],"Asunto","Mensaje bla bla bla","From: tucorreo[at]servidor.com\n");
// kompruebas si se envio el korreo
if($envio) {
echo 
"Enviado a: ".$row["email"];
} else { echo 
"Error al enviar a: ".$row["email"];
}
}

// liberas resultado y cierras konexion kon mysql

mysql_free_result($r);
mysql_close($c); ?>
Esa es una forma de envio de emails masivo kon PHP :)

__________________
El que teme preguntar, se averguenza de aprender.

Última edición por kez0; 24/06/2004 a las 12:35
  #4 (permalink)  
Antiguo 24/06/2004, 17:14
 
Fecha de Ingreso: mayo-2004
Mensajes: 24
Antigüedad: 19 años, 11 meses
Puntos: 0
Cita:
Iniciado por Cluster
Pues .. igual se va a "sobrecargar" si envias un montón de e-mails ..
Gracias por la explicación, Cluster. Creí que habría una manera más eficiente que no conocía, pero veo que al final va a terminar siendo lo mismo.

Voy a consultar la clase que me dices. Gracias por la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:36.