smtplib.SMTPAuthenticationError

Вот ошибка:

Traceback (most recent call last):
  File "spam.py", line 28, in <module>
    main()
  File "spam.py", line 25, in main
    send_mail()
  File "spam.py", line 21, in send_mail
    server.login( login, password )
  File "C:\Users\Володимир\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 734, in login
    raise last_exception
  File "C:\Users\Володимир\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 723, in login
    (code, resp) = self.auth(
  File "C:\Users\Володимир\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 646, in auth
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (534, b'5.7.9 Application-specific password required. Learn more at\n5.7.9  https://support.google.com/mail/?p=InvalidSecondFactor s27sm2028627ljo.80 - gsmtp')

А вот код:

import smtplib as root
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_mail():
    login = input('Email: ')
    password = input('Pasword: ')
    url = input('URL: ')
    toaddr = input('Addres of mail:')
    topic = input( 'team: ' )
    message = input('Message : ')

    msg = MIMEMultipart()

    msg[ 'Subject' ] = topic
    msg[ 'From' ] = login
    body = message
    msg.attach(MIMEText(body, 'plain'))

    server = root.SMTP_SSL( url, 465 )
    server.login( login, password )
    server.send_mail(login, toaddr, msg.as_string() )

def main():
    send_mail()

if __name__ == '__main__':
    main()

Ответы (1 шт):

Автор решения: D. Violet

5.7.9 Application-specific password required. Learn more at\n5.7.9 https://support.google.com/mail/?p=InvalidSecondFactor

Судя по этому сообщению об ошибке, в учетной записи включено двухэтапное подтверждение, поэтому вам нужно создать пароль для конкретного приложения и использовать его в своем коде Python. Вход в систему с использованием паролей приложения.

Если я не прав, и у вас не включен 2FA, то вы должны разрешить доступ для менее безопасных приложений: войдите в учетную запись Gmail с помощью веб-браузера по адресу https://mail.google.com , затем перейдите в «Настройки»> «Учетные записи» и Импорт> Другие настройки аккаунта Google. В разделе Безопасность прокрутите вниз и включите доступ для менее безопасных приложений. Этот параметр необходим для включения доступа SMTP, POP или IMAP.

Если это не помогло, вам может потребоваться очистить Captcha: перейдите на страницу https://accounts.google.com/DisplayUnlockCaptcha и войдите в систему, используя имя пользователя и пароль Gmail. Если необходимо (обычно это не так), введите буквы на искаженном изображении, затем нажмите «Продолжить». Это даст десять минут для регистрации кода Python в качестве утвержденного соединения. Обратите внимание, что вы должны использовать учетную запись, которую вы используете в своем коде - если браузер уже вошел в другую учетную запись, вы должны сначала выйти. Кроме того, вы должны активировать код для установления соединения в течение десяти минут после нажатия кнопки «Продолжить».

→ Ссылка