Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2012, 16:41
Avatar de stramin
stramin
 
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
PHP Mailer - Cambiar remitente y errores de SMTP

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:

Código HTML:
SMTP Error: Could not authenticate.
The following From address failed: [email protected]
The following From address failed: [email protected]
The following From address failed: [email protected]
The following From address failed: [email protected]
The following From address failed: [email protected]
The following From address failed: [email protected]
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!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D