Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Correos masivos con - PHPMailer

Estas en el tema de Correos masivos con - PHPMailer en el foro de PHP en Foros del Web. Hola colegas el día de hoy, quiero pedirles una pequeña recomendación, sucede que he creado un modulo para el envió masivo de correos electrónicos con ...
  #1 (permalink)  
Antiguo 21/04/2016, 15:55
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 11
Correos masivos con - PHPMailer

Hola colegas el día de hoy, quiero pedirles una pequeña recomendación, sucede que he creado un modulo para el envió masivo de correos electrónicos con phpmailler.

El modulo funciona a la perfección, este se conecta con el exchange que configures apuntando a una cuenta de Gmail o Hotmail por SMTP (Como se aprecia en la siguiente imagen);



Mi problema es que al realizar estos envíos masivamente como se muestra en la siguiente imagen:



El sistema SMTP de Gmail, que en el momento es lo que he probado, me bloquea la cuenta tras enviar una cierta cantidad de correos electrónicos de esta manera.

Esta mañana envié 250 correos electrónicos en tan solo un promedio de 5 a 10 minutos, no calcule muy bien el tiempo pero fue muy rápido, los correos se enviaban desde mi sistema por medio del SMTP de Gmail en cuestión de uno a dos segundos adjuntando un archivo pdf de 1.65 MB...

Según lo que he leído Gmail nos deja enviar hasta 2000 correos diarios, en otras partes nos dicen que 500, pero este no es el punto, mi enfoque está en si creen que Gmail me está bloqueando por que hago estos envios en un modo que como el mismo mensaje que me surgió en mi cuenta al acceder desde Gmail se considera de alto nivel de actividad.

Pues realizo una petición AJAX por cada correo electrónico seleccionado de la BD para el envió previo de manera lineal, en otras palabras que cada petición se haga una después de la otra, en la imagen anterior se puede observar fácilmente lo que estoy haciendo...

¿Creen que si pongo un intervalo de tiempo para que la cada petición espere un poco más me podría solucionar el problema?

¿Alguno de ustedes ha hecho un módulo parecido?, Si es así ¿Cómo hicieron para que el servidor de correos(Exchange) no los bloqueara?

De antemano agradezco cualquier comentario o sugerencia acerca del tema...
  #2 (permalink)  
Antiguo 21/04/2016, 15:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Correos masivos con - PHPMailer

Cita:
¿Creen que si pongo un intervalo de tiempo para que la cada petición espere un poco más me podría solucionar el problema?
¿Y no te parece que la respuesta obvia es ?

Vamos, que tu mismo has explicado que por la cantidad de envíos en un lapso corto de tiempo te han bloqueado.

Algo de sentido común no vendría mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/04/2016, 16:02
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 11
Respuesta: Correos masivos con - PHPMailer

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y no te parece que la respuesta obvia es ?

Vamos, que tu mismo has explicado que por la cantidad de envíos en un lapso corto de tiempo te han bloqueado.

Algo de sentido común no vendría mal.
Hola amigo pues que rápido has sido al responder!

Pues claramente lo de la espera lo he mencionado, por que como tú lo dices la respuesta es Obvia, pero no quería dañar la experiencia del usuario final haciendo que espere más de lo necesario para hacer cada envio, por tanto que tiempo crees que debería esperar, he estado pensando que dos o tres segundos sería suficiente, crees lo mismo o que tiempo me recomendarías?

Gracias
  #4 (permalink)  
Antiguo 21/04/2016, 16:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Correos masivos con - PHPMailer

Es complicado por como lo mencionas, no es lo mismo "no dejar esperando a un usuario" que "bloquear el servicio de mailing por N-mil envíos".

Si quieres resolver lo primero entonces debiste consultar en un foro de UX, pero si quieres resolver lo segundo deberías comenzar a explicar la relación de ambos puntos.

¿Por qué tendrías que enviar cientos de correos de manera inmediata?

¿El usuario debe ser notificado al instante de que todo se envió correo por correo?

¿O no hay una mejor forma de hacer eso, tal vez, indicando al usuario que la tarea tomará más tiempo?

Es decir, si el envío lo haces desde el mismo código PHP que atiende tu sitio web entonces ese es tu principal problema: tareas complicadas o que lleven su tiempo jamás debes "dispararlas" desde la web.

Necesitas usar procesos en el "background" de tu sistema, como cron jobs, que automaticen eso por ti, con sus respectivos intervalos, etc.

Existen técnicas que se le conocen como "colas de mensajes" o "sistemas de eventos", la web sólo debería disparar un evento, y al finalizarse la tarea dicha tarea debe enviar otro evento de que finalizó.

Entonces tu aplicación web sólo debe "escuchar" eventualmente a estos mensajes para notificar al usuario, etc.

No es tan simple como pensabas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 21/04/2016, 16:26
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 11
Respuesta: Correos masivos con - PHPMailer

Ok entiendo, pues creo que me has dado nuevas ideas para solucionar el problema, lo de hacer colas de mensajes sería una gran idea, la única desventaja para este caso es que no puedo usar Websockets para notificar al servidor cliente cuando se hayan enviado los mensajes y modular los respectivos eventos de los que me hablas, pues el cliente de este proyecto solo tiene un hosting compartido, y usar comet no es una buena elección pues consume muchos recursos de máquina y tampoco los tiene, tendría que hacerlo respectivamente por notificación de correo electrónico, pero en cierta manera creo que me haz dado una manera de estructurar mejor lo que tengo...

Cómo me lo has mencionado no es necesario notificarle al usuario en tiempo real el progreso del envio de estos correos, así que ciertamente esa es la primera solución al problema.

Mucas Gracias!! y muchos éxitos!
  #6 (permalink)  
Antiguo 21/04/2016, 16:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Correos masivos con - PHPMailer

Por si acaso, no necesitas websockets/comet para eso, con sólo hacer polling cada cierto tiempo debería ser suficiente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 21/04/2016, 16:43
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 11
Respuesta: Correos masivos con - PHPMailer

mmm ps soy enemigo de usar polling para conocer el estado de las operaciones que se estén llevando en el server pero creo que me podría servir también para este caso,

Finalmente de verdad Muchas Gracias por tu tiempo y por todo!

Etiquetas: correos, masivos, phpmailer
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 02:05.