Foros del Web » Programando para Internet » PHP »

Problemas con el correo masivo

Estas en el tema de Problemas con el correo masivo en el foro de PHP en Foros del Web. Estoy haciendo un motor de boletines, que se enviarán a muchisimas direcciones de correo electronico que hay en una base de datos. He utilizado la ...
  #1 (permalink)  
Antiguo 23/02/2006, 10:54
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 12 años, 7 meses
Puntos: 2
Mensaje Problemas con el correo masivo

Estoy haciendo un motor de boletines, que se enviarán a muchisimas direcciones de correo electronico que hay en una base de datos. He utilizado la clase PHPMailer para facilitarme las cosas. Recorro un bucle de los registros y por cada interaccion mando el boletin, que es identico para todo el mundo.

Cuando mando texto plano no hay ningun problema, se envia a todas las direcciones, pero en cuanto meto imagenes embebidas en el boletin, manda un cierto numero de emails, y luego surge el error (propio de phpmailer) de "from_failed", y no manda mas.

He desmenuzado cada pequeña parte del codigo de PHPMailer (bufff!!) y me he dado cuenta de lo que pasa realmente. Evidentemente, PHPMailer tiene que interactuar con el servidor SMTP, entonces va escribiendo los comandos SMTP necesarios (HELO, MAIL FROM, DATA, y todos esos, vamos) En cuanto lo escribe, tambien lee la respuesta del servidor, para comprobar que no han habido fallos, y si ha habido algun fallo, resetea (hace el comando de SMTP: RSET) Total, que llegado ese cierto momento, al escribir el MAIL FROM, lo que pasa es que el servidor no lanza respuesta, pero ni de confirmacion ni de error ni de nada, simplemente no contesta, asi que el PHPMailer lo interpreta como error. Solo es un momento, porque justo despues PHPMailer hace el RSET, y el servidor vuelve a contestar. A partir de ahi se generan el resto de errores en cadena, ya que desde ese instante el PHPMailer ya no va a recibir la respuesta que espera asi que tampoco se envian el resto de emails que faltan.

He deducido una posible relacion de acontecimientos, pero aviso, puedo estar totalmente equicocado. Parece ser que cuanto mas tamaño ocupan las imagenes, menos correos se envian. Existe un boletin que contiene unas imagenes que pesan en total unos 128k, y solo se enviaron unos 90 de 2000, en cambio otro boletin que contiene imagenes que pesan unos 47k se enviaron unos 280 de 300. Vuelvo a decir que esto no lo he podido combrobar al 100%, porque solo he probado un caso mas, que es el de incluir imagenes que pesan unos 111k, y se envian unos 10 de 30.

La duda que tengo que, porque narices pasa esto, jeje, pero tambien quiero saber cosas en general de los servidores SMTP, si tienen algun limite de tamaño de email, o ese tipo de cosas, que expliquen que es lo que puede suceder.

Muchisimas Gracias!!
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #2 (permalink)  
Antiguo 23/02/2006, 13:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tal vez lo que pase es que tu servidor SMTP al ir "acomulando" o poniendo en "cola" esos e-mails que debe enviar y son "pesados" .. al final se demora un tiempo en procesar la respuesta que debe devolver ("time out"?).

Por eso el protocolo SMTP usa el "reset" como una "transacción" .. para que si hay algún problema no se haga nada (proceso) que pueda haber quedado a medias o inconcluso.

Por lo demás . .si, un servidor STMP tiene limites de todo tipo (no sólo de tamaños, también de "tiempos" que pueda estar con un socket abierto .. o procesando), con el objetivo de que no se "caiga" el servidor por una sobrecarga.. Pero esos límites y configuración que tengas lo veras en tu servidor SMTP si es que tienes acceso a ella.

Has probado con otro servidor SMTP? (no se si usas uno própio o el de tu ISP (creo que esto ya lo he dicho otra vez?) .. )

Podrías consultar estos detalles técnicos sobre servidores SMTP y el protocolo SMTP en el foro de "Seguridad y redes" ..

Un saludo,
  #3 (permalink)  
Antiguo 23/02/2006, 16:13
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 12 años, 7 meses
Puntos: 2
El servidor SMTP que uso es el de un servicion de hosting contratado. Como podria usar otro? para comprobar que en otro no me de ese error...
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #4 (permalink)  
Antiguo 24/02/2006, 05:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por oskarL
El servidor SMTP que uso es el de un servicion de hosting contratado. Como podria usar otro? para comprobar que en otro no me de ese error...
Ya que usas PHP Mailer y este permite usar cualquier servidor SMTP .. tan sólo tienes que tener a mano una cuenta de correo SMTP y donde realizas tu autentificación .. indicas los datos del Servidor SMTP: (host) por IP/domino (algo tipo mail.tuISP.tal ... o similar) y el usuario/password de esa cuenta.

Un saludo,
  #5 (permalink)  
Antiguo 24/02/2006, 05:50
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 12 años, 7 meses
Puntos: 2
Bueno, jeje, eso ya lo sabia, igual plantee mal la pregunta... Me podeis dar los datos del algun servidor SMTP? Gracias
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #6 (permalink)  
Antiguo 24/02/2006, 10:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por oskarL
Bueno, jeje, eso ya lo sabia, igual plantee mal la pregunta... Me podeis dar los datos del algun servidor SMTP? Gracias
Los servidores SMTP normalmente requieren autentificación .. así que usa google y busca algún servicio de e-mail que ofrezca cuentas SMTP/POP y te registras.

Por ejemplo

www.hotpop.com

Un saludo,
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 23:55.