Foros del Web » Programando para Internet » PHP »

Problemas con la función mail para envío de newsletters

Estas en el tema de Problemas con la función mail para envío de newsletters en el foro de PHP en Foros del Web. Que tal amigos tengo un problema y necesito de su ayuda, resulta que estoy armando una aplicación de suscripción y envío de newsletters el cual ...
  #1 (permalink)  
Antiguo 08/08/2006, 13:04
Avatar de Hard Rock`80  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina.
Mensajes: 53
Antigüedad: 13 años, 2 meses
Puntos: 0
Problemas con la función mail para envío de newsletters

Que tal amigos tengo un problema y necesito de su ayuda, resulta que estoy armando una aplicación de suscripción y envío de newsletters el cual esta armado sobre la función mail que se encuentra dentro de un bucle.
El problema es que necesito saber como puedo hacer para que cuando se cumpla el primer bucle, haga una pausa de x segundos para darle tiempo al servidor a que envíe el mail. (no le llega a todos los destinatarios, por eso supuse que el servidor necesita mas tiempo para cada envío).

Les muestro el ejemplo de lo que tengo armado:


//defino las cabeceras para el html
$cabecera = "From: ".$nombre." <".$adminaddress.">\nReply-To:".$nombre."\n";
$cabecera .= "X-Mailer:PHP/".phpversion()."\n";
$cabecera .= "Mime-Version: 1.0\n";
$cabecera .= "Content-Type: text/html";

//conexión a la base de datos
include("../usuariodario.php");
$sql = mysql_query("SELECT * FROM `tabla_boletin`");
$n = 1; //esta variable es para enumerar la cantidad de envíos

//en este loop envío un mail por cada usuario de la Base de Datos
while($row = mysql_fetch_array($sql)) {
$mail=$row["email"];
$id=$row["id"];
//en esta include se define el html que se va a enviar por medio de un swich
switch($boletin){
case 1:
include ("boletines/news.php");
break;
case 2:
include ("boletines/news2.php");
break;
case 3:
include ("boletines/news3.php");
break;
default:
include ("boletines/news.php");
break;
}
//Envio el mail y constato que se halla enviado
mail("$mail","$asunto","$mensaje\n\n","$cabecera") ;
echo "<div>".$n++.". Enviando Boletin N°.$boletin. al mail <b>".$row["email"]."</b><br></div>";
}
?>

Espero que me puedan ayudar
  #2 (permalink)  
Antiguo 08/08/2006, 13:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrías usar sleep() .. pero para hacer eso tienes que aumentar el tiempo de ejecución máximo otorgado para un script con la función set_time_limit()

Depende en que tipo de servidores pretendas usarlo .. así te funcionará.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 08/08/2006, 13:44
Avatar de Hard Rock`80  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina.
Mensajes: 53
Antigüedad: 13 años, 2 meses
Puntos: 0
Gracias Cluster por la respuesta!! pero podrías explicarme un poco sobre sleep() y la función set_time_limit() porque nunca las use y no tengo idea de como hacerlo, gracias de todas formas!!
  #4 (permalink)  
Antiguo 08/08/2006, 16:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La función sleep() retarda la ejecución de tu script el tiempo que indiques y en el flujo del código que lo uses .. en tu caso lo usarás dentro de tu bucle.

La función set_time_limit() ajusta la ejecución en tiempo (segundos) que se le dá a un script PHP para ejecutarlo. (por defecto PHP dá 30 segundos máximo a un script para su ejecución .. con tu sleep() y cantidad de e-mails a enviar .. ese tiempo será normalmente superado ..

más referencias:
www.php.net/sleep
www.php.net/set_time_limit

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 09/08/2006, 08:55
Avatar de Hard Rock`80  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina.
Mensajes: 53
Antigüedad: 13 años, 2 meses
Puntos: 0
Gracias Cluster!!, me ayudo bastante lo que me explicaste aparentemente ahora les llega a casi todos los de la lista ahunque ahún son pocos mails, otro problema que me surgió con esta experiencia fue que en muchos casos mi boletín llega como correo no deceado o como Spamm que es peor, como puedo evitar esto si los inscriptos son los que decidieron inscribirse??
Saludos,
  #6 (permalink)  
Antiguo 09/08/2006, 09:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Sobre que tus e-mails sean clasificados como SPAM depende de muchos factores, .. cabeceras que usas para definir tu e-mail, la "IP"/domino por el que salen tus e-mails .. etc .. Hay que conocer como o que filtros te aplican para ver en que falla uno ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 14:35.