PHP Swift mailer: не удалось аутентифицироваться на SMTP с использованием 2-х возможных аутентификаторов - PullRequest
23 голосов
/ 23 августа 2010

Когда я отправляю электронное письмо с почтовой программой PHP Swift на этот сервер: smtp.exchange.example.com, например:

// Load transport
$this->transport =
    Swift_SmtpTransport::newInstance(
       self::$config->hostname,
       self::$config->port
    )
    ->setUsername(self::$config->username)
    ->setPassword(self::$config->password)
    ;

// Load mailer
$this->mailer = Swift_Mailer::newInstance($this->transport);

// Initialize message
$this->message = Swift_Message::newInstance();

// From
$this->message->setFrom(self::$config->from);

// Set message etc. ...

// Send
$this->mailer->send($this->message);

Возвращаю странную ошибку:

Не удалось выполнить аутентификацию на SMTP-сервере с именем пользователя "user@example.com" с использованием 2 возможных аутентификаторов

Я точно знаю, что логин-информация верна.

Ответы [ 13 ]

30 голосов
/ 18 декабря 2013

Это может быть старым, но кто-то может получить помощь через это.Я тоже столкнулся с той же проблемой и получил письмо на свою учетную запись gmail, в котором сообщалось, что кто-то пытается взломать вашу учетную запись через почтовый клиент или другой сайт.Затем я произвел поиск и обнаружил, что выполнение ниже разрешит эту проблему.

Перейдите на https://accounts.google.com/UnlockCaptcha‎ и разблокируйте свою учетную запись для доступа через другие носители / сайты.

ОБНОВЛЕНИЕ: 2015

Также, вы можете попробовать это, перейдите к https://myaccount.google.com/security#connectedapps Внизу, справа, есть опция «Разрешить менее безопасные приложения».Если он выключен, включите его, сдвинув кнопку.

8 голосов
/ 11 ноября 2017

У меня была такая же проблема, поэтому я отключил одну настройку для моей учетной записи root в WHM, которая выглядит следующим образом:

WHM> Домашняя страница> Конфигурация сервера> Настройки настройки> Ограничить исходящий SMTP для root, exim и mailman (FKA SMTP Tweak) [?]

6 голосов
/ 25 апреля 2013

У меня действительно такая же проблема, наконец-то я ее решил.

скорее всего, это не проблема Swift Mail. Это проблема парсера Yaml. если в вашем пароле только цифры, пароль senmd для swift окончательно не тот.

swiftmailer:
    transport:  smtp
    encryption: ssl
    auth_mode:  login
    host:       smtp.gmail.com
    username:   your_username
    password:   61548921

вам нужно исправить это двойными кавычками пароль: "61548921"

4 голосов
/ 16 октября 2012

Я только что получил ту же ошибку.

Странно то, что прокомментировал учетные линии

// ->setUsername(self::$config->username)
// ->setPassword(self::$config->password)

И проблема исчезла.

Я озадачен, потому что почтовый сервер определенно нуждается в этих учетных данных.

2 голосов
/ 17 октября 2014

Я перепробовал почти все возможные предложения, упомянутые здесь, но для меня проблема была решена после изменения «Доступ к менее защищенным приложениям» на «ВКЛЮЧИТЬ» на вкладке настроек безопасности моей учетной записи Google. Надеюсь, что это может быть полезно для других!

2 голосов
/ 23 августа 2010

Серверу может потребоваться какое-либо шифрование и безопасная аутентификация.
см http://swiftmailer.org/docs/sending.html#encrypted-smtp

1 голос
/ 31 января 2014

попробуйте ввести имя пользователя в двойные кавычки "имя пользователя", как-то это исправлено для меня.

0 голосов
/ 27 апреля 2015

Если вы пытаетесь отправить почту из вашего местного окружения, например.XAMPP или WAMP, эта ошибка будет происходить каждый раз, попробуйте один и тот же код на своем веб-хостинге или что вы используете для производства.

Также может возникнуть проблема с двухэтапной аутентификацией от Google.

0 голосов
/ 26 августа 2013

Сначала проверьте, есть ли какие-либо проблемы с подключением, и можете ли вы связаться с SMTP-сервером:

В терминале:

telnet servername portnumber 

Если вы получили ответ 220, вы можете связаться с SMTP-сервероми нет проблем с подключением, но если не удалось подключиться к серверу, посмотрите, что не так в вашей сети.

Если серверу требуется авторизация, попробуйте пройти проверку подлинности на сервере по имени пользователя и паролю и посмотреть, если что-то идет не так.

Наконец, проверьте, требует ли сервер шифрования, и если да, openssl и другие компоненты настроены правильно.

0 голосов
/ 27 июня 2013

Я столкнулся с той же проблемой и решил ее. Попробуйте сначала войти в свою учетную запись Gmail вручную. Эта проблема связана с тем, что Google обнаружил, что ваш аккаунт Gmail злоупотребляет. E.g отправлять много писем за короткий промежуток времени.

...