Script mailing PHP

Kaos

Cómo estamos, he buscado bastantes scripts para hacer un mailing masivo (más de 600 correos), normalmente saturan el POP.

Sabéis de algun script en PHP para hacerlo? Hay q tener en cuenta q no vale el metodo facil de mail() metido en un for q recorra un array de correos...

Debe ser algo q no sature el servidor... es jodio...

Saludos y gracias.

minipelos

y algo en plan un for con los 10 primeros, un javascript de espera y redirija para continuar con los 10 siguientes y suelte otro javascript... así hasta terminar todo?

de primeras es algo chapucero pero weno...

enviarlos de golpe sin saturar, es imposible, utilices el metodo que utilices, el servidor de correo, tanto haciendo un mail(); masivo como usando CCO va a tener que enviarlos al final de uno en uno (o casi), aunque con CCO te ahorras tener que enviar X veces el correo al servidor...

no se, yo lo haria distribuído con un JS que le diese algo de tiempo

BlisZ

prueba con http://es2.php.net/manual/es/function.sleep.php para no enviarlos tan a lo bestia con un bucle for

Kaos

#3 He contemplado esa posibilidad, el problema q no funciona en todos los servidores.

El comando sleep no siempre está activado... sería una buena solución, pero una lástima :(

#2 Con JS podría ser una solución más óptima, el problema es encontrar la función xD. Estoy pegado en JS.

Se admiten mas sugerencias y gracias a los de arriba :)

guner

mail(string $para, string $asunto, string $mensage [, [, ]])

Si en vez de hacer 600 mail lo haces de esta forma...

$para = 'pepe@pr0n.org, p4c0@1337.net, ...';
...

mail($para, ...);

El servidor STMP creará una cola, y creo que enviaría los que fueran al mismo servidor juntos.

Kaos

Ese metodo tampoco está mal, pero tb lo había pensado.

Ten en cuenta que es un mailing para empresas. Es decir, la empresa puede hacer el mailing a 600 personas. Si al recibir el correo, el cliente ve otros 600 de su competencia le puede mosquear un poco.

A parte que estéticamente va perder mucho cuando salga el TO: tal,tal,tal,tal,tal ... hasta 600...

guner

Vaya por dios =<

Puede que te sirva. Viendo la documentación de mail en php.net recomiendan usar el paquete pear Mail_Queue.

http://pear.php.net/package/Mail_Queue

minipelos

bueno si quieres te presento el colmo de la cutrez... :P
pero puede funcionar, por aportar algo mas

algo asi

for ($a=$origen; ($a<=origen+10) && ($a<=$total); $a++){
$mail = (el que corresponda);
mail(lo que sea);
}
if ($a < $total){
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1;URL=mail.php?origen=mail.php&origen=".origen+10."\">";
echo "Enviando mensaje ".$origen." de ".$total;
} else {
echo "Enviados ".$total." mensajes";
}

ma o meno, creo que se puede entender lo que digo :P si no, me explico un poco por encima:

mail.php (que sería este script) recibiría un número de origen (si no existiese se debería asignar a un valor inicial como 0 o como 1, como lo veas) y el for envia 10 mensajes empezando con el destinatario con una id de correo a enviar correspondiente al origen

cuando llegase al decimo actualizaria poniendo el origen en 10 mas de lo que tenías (ponlo a tu gusto) y seguiria y volvería a actualizar, asi hasta que se acaben

visualmente te enteras mas de lo que está haciendo y el progreso que lleva pero a la vez pierde tiempo recargando página, aunque lo bueno es que así puedes evitar mucho el tener un timeout no deseado.

Lo del mail_queue que han puesto, aunque no lo he probado, también puede ser interesante

Usuarios habituales

  • minipelos
  • guner
  • Kaos
  • BlisZ