Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/11/2013, 12:39
Avatar de berkeleyPunk
berkeleyPunk
 
Fecha de Ingreso: febrero-2013
Ubicación: México :C
Mensajes: 565
Antigüedad: 11 años, 3 meses
Puntos: 22
Sonrisa ¿Cómo configurar phpMailer para enviar un mensaje con cualquier cuenta Gmail?

Buen día.

Intento enviar a un destinatario un mensaje. Para esto empleo la clase phpMailer.

Por alguna razón que francamente me parece muy extraña, phpMailer envía el mensaje con una cuenta "x" de Gmail que me pertenece. Esto es, accede a ella con la contraseña y envía el mensaje. Si yo tuviera que enviar el mensaje con esa cuenta de correo no tendría yo ningún problema, y por ende no los molestaría a ustedes, amables foreros. La bronca es que necesito enviar el mensaje con otra cuenta, y phpMailer no logra autenticar ninguna otra cuenta de ningún otro servidor de correo que no sea esa cuenta "x" de Gmail de la que les hablo. Si intento enviar el mensaje con otra cuenta de correo, en pantalla devuelve el sig mensaje: SMTP Error: Could not authenticate.

¿Por qué phpMailer envía el mensaje con esa cuenta de correo específica y no con otra? No sé.

He aquí el código que empleo:
Código PHP:
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();
$mail->Host 'smtp.gmail.com';
$mail->SMTPAuth true;
$mail->Username '[email protected]';
$mail->Password 'micontrasena';
$mail->SMTPSecure 'tls';

$mail->From       '[email protected]';
$mail->FromName   'Mi nombre';
$mail->addAddress($email$nombre $apellidos);
$mail->WordWrap   50;
$mail->isHTML(true);
$mail->Subject    'Título del mensaje';
        
$mail->Body       $variableQueGuardaElMensajeAenviar;

$mail->AltBody 'This is the body in plain text for non-HTML mail clients';

if(!
$mail->send()) {
   echo 
'Message could not be sent.';
   echo 
'Mailer Error: ' $mail->ErrorInfo;
   exit;
}

echo 
'Message has been sent'
En estos días bajé la última versión de phpMailer, creo que es la 5.1, que es la que utilizo. En la 3ra línea viene declarada la función $mail->isSMTP(); Si se quita esta función (lo que equivale, me imagino, a no enviar el mensaje por SMTP), el mensaje se envía mediante cualquier cuenta de correo, Hotmail, Gmail, etc. Hasta aquí todo bien.
El problema con deshabilitar el isSMTP(), viene después, en la bandeja de entrada del destinatario. En ésta aparece nuestro mensaje, sí, pero junto con la leyenda de que dicho mensaje pudo ser enviado por alguien que está suplantando la identidad del verdadero dueño de la cuenta de Gmail o Hotmail, etc. Lo cual no es así. Gmail pone ahí un botón para que el destinatario nos denuncie como un correo fraudulento (y con ello el sitio desde donde se envió el mensaje). Phishing, se llama, creo.

Esto pasa, imagino, porque no se envío el mensaje usando el SMTP.

¿Cómo soluciono el problema?

¿Cómo configuro el phpMailer para usuar cualquier cuenta Gmail, autenticándola?

Saludos cordiales.