mail - Error fatal de PHP: ''Swift_TransportException'' con el mensaje ''No se pudo autenticar en el servidor SMTP
php mail smtp (3)
Sé que esta pregunta ya se ha hecho y he leído todas las publicaciones que hay, pero aún no puedo encontrar una solución a esto.
Tengo una máquina de Windows con Wamp instalada en ella. Cuando trato de enviar un correo electrónico simple a través del servidor SMTP de Google, todo funciona bien. Sin embargo, cuando copio el mismo script en una máquina Ubuntu 12, me da ese error:
PHP Fatal error: Uncaught exception ''Swift_TransportException'' with message ''Failed to authenticate on SMTP server with username "[email protected]" using 2 possible authenticators'' in /home/TestMail/SwiftMail/lib/classes/Swift/Transport/Esmtp/AuthHandler.php:171
Stack trace:
/home/TestMail/SwiftMail/lib/classes/Swift/Transport/EsmtpTransport.php(289): Swift_Transport_Esmtp_AuthHandler->afterEhlo(Object(Swift_SmtpTransport))
/home/TestMail/SwiftMail/lib/classes/Swift/Transport/AbstractSmtpTransport.php(114): Swift_Transport_EsmtpTransport->_doHeloCommand()
/home/TestMail/SwiftMail/lib/classes/Swift/Mailer.php(76): Swift_Transport_AbstractSmtpTransport->start()
/home/TestMail/testmail.php(73): Swift_Mailer->send(Object(Swift_Message))
thrown in /home/TestMail/SwiftMail/lib/classes/Swift/Transport/Esmtp/AuthHandler.php on line 171
Así es como inicializo el transporte:
$transport = Swift_SmtpTransport::newInstance(''smtp.gmail.com'', 465, ''ssl'')
Intenté hacer telnet a smtp.gmail.com
en el puerto 465 y funcionó bien, por lo que no debe ser un problema de firewall.
Tengo SSL habilitado con PHP. Traté de enviar dos correos separados con y sin SSL con un servidor de correo diferente y todo funcionó como el encanto. Es solo el correo de google lo que me enoja.
Cualquier idea sería bienvenida aquí.
Todo mi código php:
<?php
require_once ''SwiftMail/lib/swift_required.php'';
// Create the Transport
$transport = Swift_SmtpTransport::newInstance(''smtp.gmail.com'', 465, ''ssl'')
->setUsername(''[email protected]'')
->setPassword(''xxx'');
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
$htmlbody = ''some html here'';
// Create a message
$message = Swift_Message::newInstance(''without head'')
->setFrom(array(''<from email>'' => ''<some sender>''))
->setTo(array(''<to email>'' => ''<some recepient>''))
->setBody($htmlbody, ''text/html'');
// Send the message
$result = $mailer->send($message);
var_dump($result);
?>
¡Gracias!
Bienvenido a SO. Esto es más un comentario largo que una respuesta. Es genial ver que has publicado tu mensaje de error:
Error fatal de PHP: excepción no detectada ''Swift_TransportException'' con el mensaje ''No se pudo autenticar en el servidor SMTP con nombre de usuario'' [email protected] ''utilizando 2 posibles autenticadores'' en / home / TestMail / SwiftMail / lib / classes / Swift / Transport / Esmtp / AuthHandler.php: 171
Parte de esto es el mensaje real:
Error al autenticar en el servidor SMTP con el nombre de usuario "[email protected]" usando 2 posibles autenticadores
Yo diría que es un error que cometiste:
Puede pasar. Verifique que esté utilizando las credenciales de inicio de sesión correctas. Además, incluso si encuentra preguntas similares en el sitio, no debe significar que cubren su problema.
Esperemos que esto ayude, de lo contrario intente proporcionar más información de error, por ejemplo, ¿hay un registro con swiftmailer? ¿Ha verificado dos veces las credenciales y la configuración del servidor? ¿Qué está haciendo el firewall? Y así sucesivamente y así sucesivamente.
También puede verificar que la autenticación de validación de 2 pasos no esté habilitada. Este fue el caso para mí.
Este es un hilo viejo, pero mi resolución fue un poco diferente por el mismo error. Resulta que mi configuración de Swift está bien. La IP de mi servidor fue bloqueada por Google como sospechosa. Pude borrarlo visitando este enlace y luego ejecutando mi código de correo del servidor.