Cluster muchas gracias por tu respuesta.
Bien agregué en mi código la parte de error_log (o mas bien de grabar resultados sea error o no).
Te quería hacer dos preguntas una respecto de la validadción de email, como sería este tema? porque yo valido el mail cuando entra en la base desde el formulario de login... a eso te referías?
Bueno, la otra pregunta que quiero hacerte es sobre el tema de enviar vía SMTP, PHPMailer envía aprentemente de una forma (como lo estoy usando yo), y también vía SMTP... mi pregunta es que me conviene hacer con tal de no saturar mi server y de que mi server no aparesca en ninguna "lista negra"...
Bueno adjunto el código con el agregado... espero criticas foristaas.
Muchas graciias!
Código PHP:
// Enviar NL ////////////////////////////////////////////////////////////////////////////////////////
// Incluyo el enviador de mails
include("class.phpmailer.php");
// Me conecto a la base
include("conex.php");
$link = Conectarse();
// Revizo si hay un nuevo NL disponible
$query1 = "SELECT new FROM nl_new_available";
$result1 = mysql_query( $query1 , $link ) or die( mysql_error() );
$row1 = mysql_fetch_array($result1);
if($row1['new'] == 1){
// Creo un file para guardar los resultados
$file = "http://www.dominio.com/logs/result_log_" . date("Y-m-d") . ".txt";
if(!file_exists($file))$gestor = fopen($file,"a+");
// Extraigo de la tabla de "enviados" la ultima cantidad enviada.
$query2 = "SELECT total FROM nl_adress_sended";
$result2 = mysql_query($query2 , $link) or die( mysql_error() );
$row2 = mysql_fetch_array($result2);
// Selecciono los registros LIMIT 10 partiendo de la ultima cantidad enviada + 1.
$piso = $row3[total] + 1;
$techo = $row3[total] + 10;
$query3 = "SELECT email FROM nl_users ORDER BY ID ASC Between $piso And $techo ";
$result3 = mysql_query( $query3 , $link ) or die( mysql_error() );
// Envio el mail
while($row = mysql_fetch_array($result3)){
$mail = new PHPMailer();
$mail->From = '[email protected]';
$mail->FromName = 'Boletin Quincenal - Dominio.com';
$mail->AddAddress($row3[email]));
$mail->IsHTML(true);
$mail->Subject = "Boletin Quincenal - Dominio.com";
$mail->Body = "<font color='#000000' face='Arial, Helvetica, sans-serif'>Cuerpo del mensaje</font>";
if(!$mail->Send())fwrite($gestor, "ERROR al enviar mail a $row3[email] - " . date("r") . " - ErrorInfo: " . $mail->ErrorInfo . " \r\n");//Escribo error en log
else fwrite($gestor, "Correcto: mail a $row3[email] - " . date("r") . "\r\n");//Escribo confirmacion en log
};
// Grabo en la tabla "enviados" los mails que fueron enviados.
$query4 = "UPDATE nl_adress_sended SET `total` = '$techo'";
$result4 = mysql_query( $query4 , $link ) or die( mysql_error() );
// Si se envió el total de mails grabo en la tabla "nuevo NL disponible" el valor cero
$query5 = "SELECT total FROM nl_adress_sended";
$result5 = mysql_query( $query5 , $link ) or die( mysql_error() );
$row5 = mysql_fetch_array($result5);
$query6 = "SELECT * FROM nl_users";
$result6 = mysql_query( $query6 , $link ) or die( mysql_error() );
$total_users = mysql_num_rows($result6);
if($row5[total] == $total_users){
$query7 = "UPDATE nl_new_available SET `new` = '0'";
$result7 = mysql_query( $query7 , $link ) or die( mysql_error() );
// Envio mail informando al adminitrador
$mail = new PHPMailer();
$mail->From = '[email protected]';
$mail->FromName = 'Enviador de boletín - Dominio.com';
$mail->AddAddress($row[email]));
$mail->IsHTML(true);
$mail->Subject = "Dominio.com - Resultados de envio de boletin (Fecha)";
$mail->Body = "<font color='#000000' face='Arial, Helvetica, sans-serif'>Resultados del envio de boletín</font>";
$mail->AddAttachment($file);
if(!$mail->Send())fwrite($gestor, "ERROR al enviar mail a Administración - " . date("r") . " - ErrorInfo: " . $mail->ErrorInfo . " \r\n");/* Si no pude enviar el mail a administracion, grabo el error en el log */
};
fclose($gestor);
};
// Fin /////////////////////////////////////////////////////////////////////////////////////////////
?>