Pregunta

¿Cuál es la forma más adecuada de enviar correos electrónicos de un mínimo de 1000 o más en PHP?¿Alguna técnica confiable de cola de correo electrónico que sea capaz de manejar eso?­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

¿Fue útil?

Solución

Puede simplemente insertar sus correos electrónicos en una tabla de base de datos de la cola de correo y hacer que un proceso separado verifique la cola y envíe por lotes un número determinado a la vez.

Otros consejos

Hay una solución probada para eso:PERA Cola_correo

Funciona bien para mí.

Como sugirió Mercutio, insertaría un nuevo registro en una tabla de cola de correo para cada correo electrónico en espera de ser enviado y luego usaría un proceso separado (como un CRON) para verificar la tabla periódicamente en busca de elementos en cola.

Si hay algún correo electrónico en cola (y el correo electrónico no está personalizado para cada destinatario), agruparía los correos electrónicos por dominio y enviaría bloques juntos para reducir la cantidad total de correos electrónicos que deben enviarse, es decir,Si tiene 1000 correos electrónicos en cola y 250 son para cuentas de Gmail, enviaría los 250 en 25 bloques de 10 (recuerde enviar CCO a los destinatarios para evitar que se vean).

para enviar el correo que usaría correo pera sobre la función mail() de php

después de enviar el correo electrónico, elimine los registros de la cola o cambie un indicador de estado para mostrar que se envió y se repite; también agregaría un contador para realizar un seguimiento de los correos electrónicos que no se pudieron enviar y los eliminaría después de x intentos fallidos.

Para superar los problemas de tiempo de espera, lo haría (dependiendo de la situación): establezca el set_time_limit () en x segundos y realice un seguimiento del tiempo de ejecución del script (matando el script después (x -1) segundos) - llame al script desde el comando del comando línea para evitar tiempos de espera: establezca un límite en la cantidad de correos electrónicos que el script podría enviar en una ejecución

Claro, la tabla de la base de datos podría ser una idea.Pero ¿qué pasa con el envío de 1000 correos electrónicos con un archivo adjunto de 2 MB?Tendrías que tener eso en cuenta también.Yo mismo tuve el problema y finalmente recurrí a escribir el correo electrónico en la base de datos y los archivos en el sistema de archivos.El script de correo electrónico que utilicé leyó los registros de la base de datos e intenté recuperar los archivos adjuntos para enviarlos.

¿Está seguro de que necesita hacer esta cola de correo usted mismo?

Simplemente entregue todo el correo al agente de transferencia de correo de la máquina local (sendmail...) y deje que él se encargue de la cola y el envío.Después de todo, para eso fue diseñado.

En otras palabras:¡No te preocupes por eso!

Generalmente he confiado en un truco.Tengo una lista de direcciones de correo electrónico en la base de datos y luego uso un meta-redireccionamiento hacia mí mismo con un parámetro de 'compensación' creciente que especifica en qué fila de la base de datos estoy.Las redirecciones del servidor causan problemas porque los navegadores suponen que el tiempo necesario indica un bucle infinito.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top