Mi base de datos contiene más de 20.000verificadocorreos electrónicos. Estos son correos electrónicos de usuarios con permiso (usuarios configurados en opciones) para recibir boletines, actualizaciones, etc... del sitio web. En realidad, nunca utilicé sus direcciones de correo electrónico para ningún propósito, pero ahora quiero que los usuarios reciban algunas actualizaciones del sitio web periódicamente (una vez al mes o dos meses). Mi pregunta es más acerca de cómo enviar el mismo correo electrónico a 20.000 usuarios lo más rápido posible y qué restricciones podría enfrentar al hacer esto.
Tengo algunas ideas sobre cómo hacer esto usando la función incorporada mail() de Cron y PHP, pero no puedo enviar 20.000 correos electrónicos a la vez (¿puedo?). Además, sé que lo más probable es que los correos electrónicos terminen en la carpeta de correo no deseado/basura/spam del destinatario (eso está bien), pero no estoy seguro de que exista alguna ley que prohíba el envío masivo de correos electrónicos o restricciones (definidas por el servicio de alojamiento).
Lo que necesito es responder cómo puedo hacerlo y cuál es la mejor manera de realizar esta tarea. Esta no es una pregunta de "dame una solución", solo necesito algunos consejos porque nunca en mi vida envié más de 5 correos electrónicos a la vez y no pude encontrar la respuesta a esta pregunta. ¿Me pregunto cómo los grandes servicios, como Facebook, Twitter y Youtube, informan a sus usuarios (probablemente millones de ellos a la vez)?
Nota: Lo siento si este no es el lugar adecuado para hacer esta pregunta, tuve dudas sobre dónde publicarla, aquí o en StackOverflow, pero según cómo se ve mi problema (no proporciono ni solicito código), supongo se cerraría en SO por "no constructivo" o incluso "fuera de tema".
Respuesta1
Te enfrentarás a algunos problemas al enviar todos esos correos electrónicos a la vez. o uno por uno.
BLOQUEADORES DE SPAM
Para enviar esa cantidad de correo electrónico necesita configurar SPF, posiblemente algún tipo de firma de certificado, usar un servidor con una IP estática, preferiblemente con DNS inverso. Cuando comienza a crecer aún más, debe comunicarse directamente con algunos administradores de correo electrónico para que lo incluyan en una lista blanca presentando motivos y documentos legítimos. Solíamos enviar alrededor de 250 mil correos electrónicos en un día, a veces 4 veces al mes, a nuestros suscriptores.
Escribimos nuestro propio programa, pero hay muchos disponibles.
También puede simplemente repetir cada correo electrónico y enviarlo uno por uno... luego intentar conectarlo en hiperproceso... eventualmente dividirlo en dominios y tal vez pueda enviarlos todos en aproximadamente 1 hora con una programación inteligente.
Buena suerte
Respuesta2
Respuesta corta: haga la IP estática y el DNS inverso. Puedes pero no enviarlos en una hora. A los servidores de correo no les gustan miles de correos electrónicos en poco tiempo, serás bloqueado. Diría aún más si todo ese correo proviene de un servidor de correo que acaba de aparecer en la red.
Respuesta larga: envío 2.000 correos electrónicos una vez a la semana. Utilizo un programa en php para enviarlos, es software libre, no sé si puedo nombrarlo aquí así que no lo haré. El sitio web es naranja, está en php para gestionar listas (newsletters). Mi servidor es un xeon de 1 GB de RAM, 2,4 GHZ y 4 núcleos con Debian, envía 4 correos por segundo (alrededor de 100 000 cada uno) con postfix (todo el correo saliente se revisa en busca de virus), por lo que debería ser 14.000 por hora. Si envía demasiados correos electrónicos a un dominio, es posible que algunos de ellos tengan alguna función de bloqueo. Yahoo tenía/tiene algo así como una lista gris, recuerdo que tuve que contactarlos más de una vez durante 3 meses hasta que detuvieron los rechazos temporales. Mi ISP rechaza los correos si ve demasiadas conexiones en poco tiempo, así que en postfix disminuí las conexiones, creo que de 20 a 10. Por cierto, Gmail envía 5.000 correos por segundo, lo escuché en un debconf (10,11, 12) de uno de los desarrolladores.