PHP - phpmailer log en pantalla

 
Vista:

phpmailer log en pantalla

Publicado por luis d. gil (1 intervención) el 24/01/2016 18:56:38
Ante todo, gracias por vuestra atención.

tengo que enviar varios mail (unos 500 por sesion) utilizando phpmailer y quiero que tras enviar cada uno, imprima una línea en pantalla indicando que se ha realizado ese envío, para ir controlando en qué fase está el proceso. Pero únicamente la imprime, cuando ha terminado de enviarlos todos.

He probado a situar los "echo" en distintos lugares pero no hay forma. Adjunto mi código

muchas gracias por vuestra atención.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
if (isset($_POST['btEnviar'])){
$usuario = strtoupper($_SESSION['MM_Username']);
?>
<script type="text/javascript">
document.body.innerHTML = "";
</script>
<?php
$envios=10000;
if ($usuario=="DEMO" ){
?><script language="javascript">alert("El usuario Demo, no puede realizar envios")</script><?php
} else {
    require("../_clases/phpmailer/class.phpmailer.php");
?><table width="100%"><?php
do{
?><tr><td><?php
// http://tierrabajocero.com/tag/minirelay/
 
    $mail = new PHPMailer();
if ($hostname_lgsocios=="localhost"){
	$mail->IsSMTP();
}else{
	$mail->IsSendmail();
}
/*    $mail->Host = $hostname_lgsocios;*/
    $mail->From = $row_RstDatosEmpresa['MIMAIL'];
    $mail->FromName = $row_RstDatosEmpresa['MINOMBREMAIL'];
 
//    $direcciones =$_POST['destinatario'];
    $direcciones =$row_rstSocios['mail'];
    $tabla=explode(",", $direcciones);
//    $numTotal=1; //número de correos diferentes a enviar
    $numTotal=count($tabla); //número de correos diferentes a enviar
    $flag=0; //bandera
    while($numTotal>0){
    $mail->AddAddress($tabla[$flag]);
    $mail->AddCC($row_RstDatosEmpresa['MIMAILCOPIAS']);
    $mail->Subject = ' '.$_POST["asunto"].' ';
    $mail->Body = ' '.$_POST["texto"].' ';
    $mail->WordWrap = 1200;
if (isset($_POST['archivo'])&& $_POST['archivo']>""){
	$mail->AddAttachment('../lgArchivos/'.$_POST['archivo'], $_POST['archivo']);
}
$envios++;
if(!$mail->Send()){
	$resultado=substr($envios,2,4)." ".date('Y-m-d H:m:s')."ERROR enviando mail a: ".$row_rstSocios['codSocio']." ".$direcciones;
}
else {
	$resultado=substr($envios,2,4)." ".date('Y-m-d H:m:s')." enviado mail CORRECTO a: ".$row_rstSocios['codSocio']." ".$direcciones;
}
 
    $numTotal--;
    $flag++;
    $mail->ClearAddresses();
}
// esperamos 20 segundos para enviar el siguiente y evitar que lo puedan considerar spam
print $resultado; ?><p></p></td></tr><?php
sleep(20);
 
 
} while ($row_rstSocios = mysql_fetch_assoc($rstSocios));
 
 
// -----borrar todos los archivos de la carpeta
$dir = "../lgArchivos/";
$handle = opendir($dir);
while ($file = readdir($handle))
{
   if (is_file($dir.$file))
   {
       unlink($dir.$file);
   }
}
// ----- fin de borrado de archivos
 
$_SESSION['maildestinatario']=null;unset($_SESSION['maildestinatario']);
$_SESSION['mailasunto']=null;unset($_SESSION['mailasunto']);
$_SESSION['mailtexto']=null;unset($_SESSION['mailtexto']);
$_SESSION['mailarchivo']=null;unset($_SESSION['mailarchivo']);
?>
<!-- ..... redirigir a otra pagina....-->
<script type="text/javascript">
alert('Fin de Envio Masivo de Mail');
</script>
<tr>
<?php
$envios=$envios-10000;
echo "Se han enviado ".$envios." Correos Electrónicos.";
?></tr></table><?php
echo "Se han enviado ".$envios." Correos Electrónicos.";
//header(sprintf("Location: ../lgUtil/frmMenuProcesos.php"));
 
 
}
}
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder