Hola a todos, un amigo me paso este codigo para poder enviar mis boletines a los clientes registrados en la empresa y ambos tenemos el mismo problema que no podemos solucionarlo y no sabemos porque esta sucediendo.
Utilizamos phpmailer y jalamos los emails de una base de datos, escogemos un rango de unos 400 mails para enviar, ya que nuestro servidor nos permite 450 por hora, pero en el transcurso del envio se traba en el numero 199 a veces en el 200 hay veces en el 1XX y asi esta sucediendo...Alguien podria ayudarnos a corregir el codigo...Nos basamos en ideas salidas de este foro para hacer el codigo...ayuda pleaseeeee
Aqui el codigo
<?
include("class.phpmailer.php");
//.................................................. .................................................. .....
set_time_limit(85000);
for($i=0;$i<200;$i++)
{
echo ".";
}
echo "<br>enviando, puede cerrar";
flush();
//.................................................. .................................................. .....
function enviomails(){
//.................................................. .................................................. .....
//.................................................. .................................................. .....
//.................................................. .................................................. .....
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "mail.dominio.com";
$mail->Port = 25;
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->IsHTML(true);
$mail->AddEmbeddedImage("images/qwe.gif","qwe");
$mail->SetFrom([email protected]', ');
$mail->AddReplyTo("[email protected]","texto");
$mail->Subject = "texto";
$mail->Body =
"<img src='cid:qwe' alt='Logo' width='500' height='600'/>";
$mail->AltBody = "texto";
include("accesos.php");
$cn=mysql_connect($server,$user,$pass);
mysql_select_db($BD,$cn);
$sqlA="Select * from base where campo='yo' and campo2='tu' order by id limit 0,400";
$rsA=mysql_query($sqlA,$cn);
$NotasA=mysql_num_rows($rsA);
while($MRNotasEstasA=mysql_fetch_array($rsA)){
$correo=$MRNotasEstasA["mail"];
$mail->AddAddress($correo, "texto");
$exito = $mail->Send();
$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}
if(!$exito)
{
echo "Problemas enviando correo ";
echo "<br/>".$mail->ErrorInfo;
}
else
{
echo "ok";
}
$mail->ClearAddresses();
sleep(8);
}
}
register_shutdown_function(enviomails);
?>