Hola a todos!
Tengo un sistema de envío de e-mails de alerta que ha funcionado bien durante un tiempo, usando el SMTP del servidor local, pero ahora ha sido necesario usar un servidor SMTP remoto (de gmail).
he configurado como se muestra a continuación:
Código PHP:
//ALARMAS//
require("PHPMailer/class.phpmailer.php");
$mail = new PHPMailer();
//common headers
$mail->IsSMTP();
//$mail->Mailer = "smtp";
$mail->Host="smtp.gmail.com";
$mail->Port=465;
$mail->SMTPAuth=true;
$mail->SMTPSecure="ssl";
$mail->Timeout=30;
$mail->FromName = "INFO";
$mail->CharSet = "UTF-8";
$MQus=mysql_query("SELECT name,mail FROM ...bla...bla...bla",$cnx);
while($MFAus=mysql_fetch_array($MQus)){
$mail->AddAddress($MFAus['mail']);
$bodyN=str_replace("#Name",$MFAus['name'],$body);
$bodyN=str_replace("
","<br>",$bodyA);
$bodyA.="
".$lang->tran("Map location").": ".$urllnk;
$mail->IsHTML(true);
$mail->Body=($bodyN);
$mail->AltBody=($bodyA);echo "<div>".$MFAmsg['user'].":".$MFAus['mail'].":".$MFAmsg['pass']."</div>";
$mail->Send();
$mail->ClearAddresses();
}
Como verán se hace un ciclo de envíos en vez de agregar todas las direcciones ya que cada destinatario recibe un e-mail diferente según los datos de la consulta mySQL.
ahora el problema es que el primer envío me da un mensaje de error de autentificación, y los siguientes me dan error al cambiar el remitente ($mail->AddAddress($MFAus['mail']);) como sale a continuación:
siendo que al terminar la ejecución limpio todas las direcciones ($mail->ClearAddresses();).
Ahora lo curioso es que los e-mails si llegan º_0.
Pero aún así me gustaría arreglar estos errores, alguien sabe como arreglarlo?
Saludos!