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.
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


0