Foros del Web » Programando para Internet » PHP »

Mails masivos con mail()

Estas en el tema de Mails masivos con mail() en el foro de PHP en Foros del Web. Mi script funciona perfectamente, los emails llegan a la bandeja de entrada de hotmail, el problema es que tengo que mandar alrededor de 3000 mails ...
  #1 (permalink)  
Antiguo 23/04/2009, 11:51
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Mails masivos con mail()

Mi script funciona perfectamente, los emails llegan a la bandeja de entrada de hotmail, el problema es que tengo que mandar alrededor de 3000 mails (osea destinatarios), y la carga de 30 segundos de la pagina no permite que se lleguen a mandar todos, hay alguna forma de enviarlos por intervalos mas pequeños para asegurarme de que lleguen a todos los destinatarios? Gracias
  #2 (permalink)  
Antiguo 23/04/2009, 14:45
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Mails masivos con mail()

seria bueno agreges parte de tu code para poder ayudarte u.u
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #3 (permalink)  
Antiguo 23/04/2009, 14:48
f0n
 
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 1
Respuesta: Mails masivos con mail()

set_time_limit(0);

al principio de la pagina php
  #4 (permalink)  
Antiguo 23/04/2009, 14:57
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Mails masivos con mail()

Cita:
Iniciado por f0n Ver Mensaje
set_time_limit(0);

al principio de la pagina php
De maravilla, los 3000 destinatarios reciben el email, muchas gracias.
  #5 (permalink)  
Antiguo 23/04/2009, 16:43
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Mails masivos con mail()

solo un comentario, hay una alta probabilidad que en poco tiempo te bannen tu IP por spam... segun tengo entendido hay un limite (propio a cada servidor o proveedor de servicios) para el envio de correos en una hr.

Te sugiero que lo revises para que puedas seguir mandando tus correos.

Suerte
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #6 (permalink)  
Antiguo 23/04/2009, 20:07
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Mails masivos con mail()

Q tal si envias los correos en intervalos es decir 100 por hora y no ese monton a la vez.
  #7 (permalink)  
Antiguo 24/04/2009, 09:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Mails masivos con mail()

Cita:
Iniciado por Avatar810 Ver Mensaje
solo un comentario, hay una alta probabilidad que en poco tiempo te bannen tu IP por spam... segun tengo entendido hay un limite (propio a cada servidor o proveedor de servicios) para el envio de correos en una hr.

Te sugiero que lo revises para que puedas seguir mandando tus correos.

Suerte
Como y donde puedo chequear esto?

Cita:
Iniciado por acoevil Ver Mensaje
Q tal si envias los correos en intervalos es decir 100 por hora y no ese monton a la vez.
Como hago para enviar por intervalos?

Gracias.
  #8 (permalink)  
Antiguo 24/04/2009, 10:03
isra00
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Respuesta: Mails masivos con mail()

Si tienes los emails en la BD puedes crear, cada vez que hagas un mailing, una tabla que contenga todos los emails y un campo booleano "enviado". Haces algo así como:

Código PHP:

function ronda() {
    
$x 100//Número de emails por cada ronda
    
$espera 100//Segundos entre ronda y ronda

    //Obtiene las direcciones pendientes
    
$pendientes mysql_query("SELECT email FROM cola_mailing WHERE enviado = 0 LIMIT x");

    
//Para cada dirección, envía el email y guarda la dirección como despachada
    
while ($direccion mysql_fetch_assoc($pendientes)) {
        if (
mail("Asunto"$direccion['email']...)) {
            
$q_enviado mysql_query("UPDATE cola_mailing SET enviado = 1 WHERE email = '" $direccion['email'] . "'");
        }
    }

    
//Revisa si quedan emails por enviar
    
$consulta mysql_query("SELECT email FROM cola_mailing WHERE enviado = 0 LIMIT x")

    if (!
mysql_num_rows($consulta)) {
        
//Si quedan emails por enviar, espera $espera segundos para no saturar el servidor y vuelve a ejecutar la función
        
sleep(100);
        
ronda();
    }

No lo he probado así que puede fallar. De todos modos espero que te sea útil. Saludos!
  #9 (permalink)  
Antiguo 24/04/2009, 10:28
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Mails masivos con mail()

Prueba con:
Código PHP:
exec('php -f sendEmails.php  > /logs/emaillog'); 
Lo que hace esa instruccion es ejecutar el script sendEmails.php como linea de comandos y envia la salida del script a emaillog(de esta forma el script se ejecutará en segundo plano). Obviamente en sendEmails.php envias los 3000 correos que quieres. Pero ten mucho cuidado. Si tu aplicacion la tienes con un servicio de hosting que limite el envio de correos a cierto numero, tu aplicacion no enviara los 3000.

Espero te sirva.
__________________
I see dead pixels
  #10 (permalink)  
Antiguo 24/04/2009, 21:43
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Mails masivos con mail()

ema21del19:

Francamente no veo poruq te van bloquear tu Ip por enviar 3000 o 50000
correos, cuando los servidores de hotmail.com envian hasta 99000 en una hora.

Si tus envios son normales y tu servidor tiene capacidad para establecer esa
cantidad de conexiones sin comprometer el ancho de banda y si todos
los requisitos de envio estan bien pues no hay absolutamente nada que
temer.

Saludos
Y adelante con los 3000 en 3000 segundos
Franco
  #11 (permalink)  
Antiguo 25/04/2009, 09:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Mails masivos con mail()

Cita:
Iniciado por franco190453 Ver Mensaje
ema21del19:

Francamente no veo poruq te van bloquear tu Ip por enviar 3000 o 50000
correos, cuando los servidores de hotmail.com envian hasta 99000 en una hora.

Si tus envios son normales y tu servidor tiene capacidad para establecer esa
cantidad de conexiones sin comprometer el ancho de banda y si todos
los requisitos de envio estan bien pues no hay absolutamente nada que
temer.

Saludos
Y adelante con los 3000 en 3000 segundos
Franco
Muchas gracias por tu comentario, hasta ahora funciona de maravilla y esta comprobado que el mail le llega a los 3000 destinatarios usen el servidor que usen (hotmail, gmail, etc), no tuve la necesidad de utilizar ninguna clase (llamese phpmailer), solo un script propio con un par de lineas,y en cuestion de aproximadamente 3 minutos los mails son recibidos.
  #12 (permalink)  
Antiguo 25/04/2009, 13:10
isra00
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mails masivos con mail()

Cita:
Iniciado por franco190453 Ver Mensaje
ema21del19:
Francamente no veo poruq te van bloquear tu Ip por enviar 3000 o 50000
correos, cuando los servidores de hotmail.com envian hasta 99000 en una hora.
Pues precisamente porque su servidor no es el de Hotmail, es un hosting alquilado. Los responsables de este hosting no quieren que desde sus servidores se envíe spam, por eso lo regulan de ese modo, así como con filtros y reglas en los servicios SMTP.
  #13 (permalink)  
Antiguo 26/04/2009, 19:26
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 21
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Mails masivos con mail()

para q envies cientos de miles de mensajes a la vez necesitas un servidor dedicado los hosting compartidos como powweb,hostgator,bluehost solo permiten enviar 200 mensajes x hora y otros 200 mas x hora si envias 5,000 en una hora te banean el hosting,yo tambien tengo un mailer q llega a la bandeja de entrada de hotmail,yahoo,gmail en este foro puse el code de mi mailer q usa la funcion mail() de php
  #14 (permalink)  
Antiguo 27/04/2009, 06:58
 
Fecha de Ingreso: marzo-2009
Mensajes: 355
Antigüedad: 15 años, 1 mes
Puntos: 4
Respuesta: Mails masivos con mail()

Cita:
Iniciado por Darkperu Ver Mensaje
para q envies cientos de miles de mensajes a la vez necesitas un servidor dedicado los hosting compartidos como powweb,hostgator,bluehost solo permiten enviar 200 mensajes x hora y otros 200 mas x hora si envias 5,000 en una hora te banean el hosting,yo tambien tengo un mailer q llega a la bandeja de entrada de hotmail,yahoo,gmail en este foro puse el code de mi mailer q usa la funcion mail() de php
Yo si uso un servidor dedicado, llevo poco mas de 1 semana haciendo esto de los mails y hasta ahora esta todo ok.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:24.