Я знаю, что этот вопрос был задан раньше, и я прочитал все сообщения там, но я до сих пор не могу найти решение этого.
У меня есть машина для Windows с установленным на ней креплением. Когда я пытаюсь отправить простую электронную почту через SMTP-сервер Google, все работает нормально. Хотя, когда я копирую тот же самый скрипт на машину Ubuntu 12, это дает мне такую ошибку:
PHP Fatal error: Uncaught exception 'Swift_TransportException' with message 'Failed to authenticate on SMTP server with username "xxx@gmail.com" 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
Вот как я инициализирую транспорт:
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
Я попытался подключиться telnet к smtp.gmail.com
на порту 465, и он работал нормально, поэтому он не должен быть проблемой межсетевого экрана.
У меня SSL с поддержкой PHP. Я пытался отправить две отдельные письма с и без SSL с другим почтовым сервером, и все работало как шарм. Это только почта Google, которая меня злит.
Любые идеи приветствуются здесь.
Весь мой PHP-код:
<?php require_once 'SwiftMail/lib/swift_required.php'; // Create the Transport $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl') ->setUsername('xxx@gmail.com') ->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); ?>
Благодаря!
Это старый поток, но моя резолюция была немного иной для той же ошибки. Оказывается, моя конфигурация Swift прекрасна. IP-адрес моего сервера был заблокирован Google как подозрительный. Я смог очистить его, посетив эту ссылку, а затем выполнив код моей почтовой программы с сервера.
Вы также можете проверить, что проверка аутентификации в 2 этапа не включена. Это было для меня.
Добро пожаловать в SO. Это более длинный комментарий, чем ответ. Приятно видеть, что вы отправили сообщение об ошибке:
PHP Неустранимая ошибка: исключить исключение «Swift_TransportException» с сообщением «Не удалось выполнить проверку подлинности на SMTP-сервере с именем пользователя« xxx@gmail.comm »с использованием 2 возможных аутентификаторов в / home / TestMail / SwiftMail / lib / classes / Swift / Transport / Esmtp / AuthHandler.php: 171
Частью этого является фактическое сообщение:
Не удалось выполнить аутентификацию на SMTP-сервере с именем пользователя «xxx@gmail.comm», используя 2 возможных аутентификатора
Я бы сказал, что это опечатка, которую вы сделали:
xxx@gmail.comm ^
Может случиться. Убедитесь, что вы используете правильные учетные данные. Также, если вы найдете похожие вопросы на сайте, это не значит, что они охватывают вашу проблему.
Надеюсь, это поможет, в противном случае попытайтесь предоставить больше информации об ошибках, например, есть ли журнал с swiftmailer? Вы дважды проверили учетные данные и конфигурацию сервера? Что делает брандмауэр? И так далее.