Foros del Web » Programando para Internet » PHP »

Enviar mails a los contactos de una base de datos

Estas en el tema de Enviar mails a los contactos de una base de datos en el foro de PHP en Foros del Web. Tengo una base de datos en MySql con direcciones de e-mail y me gustaria poder enviarles un mail a todos ellos. Lo ideal seria con ...
  #1 (permalink)  
Antiguo 24/11/2004, 12:00
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2
Antigüedad: 19 años, 4 meses
Puntos: 0
Enviar mails a los contactos de una base de datos

Tengo una base de datos en MySql con direcciones de e-mail y me gustaria poder enviarles un mail a todos ellos. Lo ideal seria con alguna funcion php, y que pudiera hacerlo desde una pagina php creada por mi, pero no se como crearla. Necesito ayuda. Gracias.
  #2 (permalink)  
Antiguo 24/11/2004, 15:04
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
haces una consulta y con esta un while.
El tema esta en que si son muchos email no es conveniente hacerlo de una, por lo que te conviene paginarlos en paquetes de a 50 o 100.
Otro tema es que si se corta el script en el medio, y lo retomas no volver a enviarle el mail a quienes se les haya enviado.
La solucion que veo es crear una tabla de enviados (dos campos, usuario y envio, ambos int), donde vas guardando lo que ya enviaste, y al levantar los usuario joineas con esta para levantar los faltantes...te doy un ejemplo:

<?php
include("conexion.php");
$tanda = 50;
$codigo_envio = 1;
$sql = 'select u.codigo, u.nombre, u.email from usuarios u left join envio e on e.usuario = u.codigo and e.envio = '.$codigo_envio.' where e.usuario is null limit 0,'.$tanda;
$query = mysql_query($sql, $conexion);
$total = mysql_num_rows(mysql_query($sql,$conexion));
if($total>0){
while($rs=mysql_fetch_array($query)){
#Enviar email aca
mysql_query("insert into envio (usuario, envio) values ('".intval($rs["codigo"])."', '".$codigo_envio."')",$conexion);

}

}

?>
Si queres darle mas onda podes usar ob_end_flush(); al inicio de la pagina, y un flush() cada vez que pasa por el while, y antes de este un echo de a quien se a enviado el mail. Además deverías verificar que el mail al que vas a enviar cumpla al menos con la logica de una cuenta comun (para esto hay regular expresion en la web a patadas).
Espero te sirva al menos de base.
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 01:13.