Не удалось пройти аутентификацию на SMTP-сервере с именем пользователя, да ****, с использованием 2 возможных аутентификаторов.

Я пытаюсь настроить электронную почту для проекта Laravel с помощью SendGrid. Следуя их документации, я получаю сообщение об ошибке (https://sendgrid.com/docs/Integrate/Frameworks/laravel.html)

.env выглядит так

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=yea****
MAIL_PASSWORD=*********
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="John Smith"
[email protected]

Ошибка, которую я получаю, выглядит так

ErrorException (E_WARNING)
stream_socket_enable_crypto(): Peer certificate CN=`****.****.***' did not match expected CN=`smtp.sendgrid.net'


/home/myusername/public_html/api/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php
    public function startTLS()
            {
                // STREAM_CRYPTO_METHOD_TLS_CLIENT only allow tls1.0 connections (some php versions)
                // To support modern tls we allow explicit tls1.0, tls1.1, tls1.2
                // Ssl3 and older are not allowed because they are vulnerable
                // @TODO make tls arguments configurable
                return stream_socket_enable_crypto($this->stream, true, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT);
            }

        Arguments
        "stream_socket_enable_crypto(): Peer certificate CN=`****.****.***' did not match expected CN=`smtp.sendgrid.net'"

Я исправил эту ошибку, используя код, приведенный в этом ответе (https://stackoverflow.com/a/45315825). Я знаю, что это плохая практика, но у меня другая ошибка.

Swift_TransportException
Failed to authenticate on SMTP server with username "yea****" using 2 possible authenticators. Authenticator LOGIN returned Swift_TransportException: Expected response code 235 but got code "535", with message "535 Incorrect authentication data " in /home/myusername/public_html/a[i/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:456 Stack trace: #0 

/home/myusername/public_html/api/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php
$message = 'Failed to authenticate on SMTP server with username "'.$this->username.'" using '.$count.' possible authenticators.';
            foreach ($errors as $error) {
                $message .= ' Authenticator '.$error[0].' returned '.$error[1].'.';
            }
            throw new Swift_TransportException($message);
        }
    }

Для меня это похоже на какую-то ошибку аутентификации, я использую те же учетные данные, что и для входа в панель управления SendGrid.

есть идеи, как исправить эти проблемы?


person Rick Groen    schedule 13.08.2018    source источник
comment
Что вы используете в качестве хостинг-провайдера?   -  person berkay kılıç    schedule 13.08.2018
comment
Я использую cPanel VPS по адресу TransIp   -  person Rick Groen    schedule 15.08.2018


Ответы (1)


Мое решение в этом случае заключалось в двойных кавычках имени пользователя, пароля и номера порта.

Затем я получил еще одну ошибку, например:

'' 'Подключение к tcp: //smtp.hostx.com: время ожидания 465 истекло' ''

   Connection to tcp://smtp.hostx.com:465 Timed Out

и я исправил это, изменив MAIL_ENCRYPTION с tls на ssl:

MAIL_ENCRYPTION = ssl

Я надеюсь, что это поможет кому-то другому, потому что этот пост слишком старый.

person herohat    schedule 13.08.2019